动态库不使用 Visual Studio 2012 生成 lib 文件

Vic*_*ool 0 c++ window

我正在使用 Visual Studio 2012 并且我在不使用 MFC 的情况下创建了 dll,它生成了 dll。但是,当我使用以下选项指定在特定目录中生成 lib 文件时:- 转到 proeperties 页面->Advanced->Import Library ../../../lib/myapp.lib

它不会在指定文件夹中生成 lib 文件。请帮我 。

感谢和问候 维卡斯

fat*_*ihk 5

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

#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
Run Code Online (Sandbox Code Playgroud)

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

class MYAPPLIB_API MyClass{ ... };
Run Code Online (Sandbox Code Playgroud)