dll导出标题
原文链接:https://www.f2er.com/windows/363573.htmlextern "C" void _declspec(dllexport) __stdcall foo();
.def文件
EXPORTS foo @1
当我通过64位构建配置构建dll时,我遇到这个警告.
warning LNK4197: export ‘foo’ specified multiple times; using first specification
但是如果我通过32位构建配置构建dll,则警告永远不会发生.
问题是什么?有什么不同.
在dll标题的界面中,我们通常使用这个技术,
#ifdef EXPORT_DLL #define BASICAPI _declspec(dllexport) #else #define BASICAPI _declspec(dllimport) #endif //_EXPORT_DLL
但是如果def文件也存在,当我们构建64位dll时,我们总是会遇到警告.
那么,我们应该写这样的代码吗?
#ifdef EXPORT_DLL #define BASICAPI #else #define BASICAPI _declspec(dllimport) #endif //_EXPORT_DLL
运作良好但这对我来说并不熟悉.
给我你的意见