我使用的是 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/