使用vs生成DLL时,没有产生lib,一般发生在我们自己创建的DLL项目中,产生这个问题的主要原因是没有导出类。
导出DLL标记有两种方法,只要采用其中一种就可以解决。
1.添加def文件
在工程上右键 -> 添加 -> 新建项 -> 选"模块定义文件(.def)" -> 随便输入个名字 -> 添加
2.导出类
#define __DLL_H__
#define __DLL_EXPORTS__
#ifdef __DLL_EXPORTS__
#define DLLAPI __declspec(dllexport)
#else
#define DLLAPI __declspec(dllimport)
#endif
class DLLAPI A{ // 注意,DLLAPI导出标记在class与类名中间
public:
A(int m);
int getInt();
private:
int m_data;
};
#endif
函数的导出方式:
DLLAPI int fun(int m);
// 函数的导出标记位置在返回值最前面
超重点,DLL类的导出标记在class与类名之间,而函数的导出标记在返回类型之前