once
头文件被编译一次。就能够保证头文件只被编译一次
warning
(disable:1111) 不报
( once:1111)报一次
( error:1111)报
comment
传统的到出 DLL 函数的方法是使用模块定义文件 (.def),Visual C++ 提供了更简洁方便的方法,
那就是“__declspec()”关键字后面跟“dllexport”,告诉连接去要导出这个函数,例如:
__declspec(dllexport) int __stdcall MyExportFunction(int iTest);
把“__declspec(dllexport)”放在函数声明的最前面,连接生成的 DLL 就会导出函数
“[email protected]”。
上面的导出函数的名称也许不是我的希望的,我们希望导出的是原版的“MyExportFunction”。
还好,VC 提供了一个预处理指示符“#pragma”来指定连接选项 (不仅仅是这一个功能,还有很多指示功能) ,
如下:
#pragma comment(linker,"/EXPORT:[email protected]")
这下就天如人愿了:)。如果你想指定导出的顺序,或者只将函数导出为序号,没有 Entryname,
这个预处理指示符 (确切地说是连接器) 都能够实现,看看 MSDN 的语法说明:
/EXPORT:entryname[,@ordinal[,NONAME]][,DATA]
@ordinal 指定顺序;NONAME 指定只将函数导出为序号;DATA 关键字指定导出项为数据
时间: 2024-10-12 04:36:35