c++ - 动态库不使用 visual studio 2012 生成 lib 文件

标签 c++ window

我使用的是 Visual Studio 2012,我在不使用 MFC 的情况下创建了 dll,它生成了 dll。但是当我指定使用以下选项在特定目录中生成一个 lib 文件时:- 转到属性页面->高级->导入库 ../../../lib/myapp.lib

它没有生成指定文件夹中的 lib 文件。请帮助我。

感谢和问候 维卡斯

最佳答案

刚刚解决了类似的问题。 Visual Studio 不会在不指示在 dll 中公开哪些对象的情况下创建 .lib 文件。您需要像这样创建一个 win exports header :

#ifndef BLABLABLA
#define BLABLABLA

#ifdef MYAPPLIB_EXPORTS
#define MYAPPLIB_API __declspec(dllexport)
#elif defined(MYAPPLIB_EXPORTS_STATIC)
#define MYAPPLIB_API 
#else
#define MYAPPLIB_API __declspec(dllimport)
#endif 

#endif // !BLABLABLA

然后,您需要将 MYAPPLIB_EXPORTS 声明为预处理器宏。在将这个新头文件包含在其他 API 头中之后,对于您想要在 API 中公开的每个类或方法,您可以将 MYAPPLIB_API 添加到它们的声明中,例如:

class MYAPPLIB_API MyClass{ ... };

关于c++ - 动态库不使用 visual studio 2012 生成 lib 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16210178/

相关文章:

C++ Bool 测试使用可变参数 "..."

JavaScript 图像弹出窗口

WPF - window.IsEnabled setter 持续时间长

c++ - vector 中的不可复制元素

c++ - 在 UWP 中使用自定义视频效果

Windows Vista 和 7 运动效果仅在显示我的表单时应用一次。为什么?

ruby - 使用 Watir 查找当前打开的浏览器 (firefox) 窗口

python - OpenCV 窗口必须出现在所有窗口的前面

.net - 如何将 cli::array 从 native 代码转换为 native 数组?

c++ - 无法实例化抽象类,但我有