VS2017 项目生成dll但是用dll查看器查看没有任何函数

VS2017 项目生成dll但是用dll查看器查看没有任何函数

用 “具有导出项的(DLL)动态链接库” 模版创建一个 DLL 项目。观察其生成的头文件:

// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DLL2_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// DLL2_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef DLL2_EXPORTS
#define DLL2_API __declspec(dllexport)
#else
#define DLL2_API __declspec(dllimport)
#endif

// 此类是从 dll 导出的
class DLL2_API CDll2 {
public:
	CDll2(void);
	// TODO: 在此处添加方法。
};

extern DLL2_API int nDll2;

DLL2_API int fnDll2(void);

注释交待地很清楚,DLL 导出项需要属性修饰之,即 DLL2_API 宏的内容。作为 DLL 的生产者时,DLL2_API 标示函数是导出的;作为 DLL 的消费者时,DLL2_API 又可以标示函数是从其它 DLL 导入的。

你很可能没有用 __declspec(dllexport) 说明函数用途,自然看不到。