基本上是代码行
extern char *strlwr OF((char *s));
给出错误
warning C4273: 'strlwr' : inconsistent dll linkage
我不知道为什么。这不是我的代码,所以我在弄清楚如何修复它时遇到了问题。
基本上是代码行
extern char *strlwr OF((char *s));
给出错误
warning C4273: 'strlwr' : inconsistent dll linkage
我不知道为什么。这不是我的代码,所以我在弄清楚如何修复它时遇到了问题。
寻找:
_declspec( dllexport );
_declspec( dllimport );
附在 strlwr 的声明中。这与此有关。
基本上,当您在 dll 本身中声明 strlwr 时,例如,当包含 strlwr 的标头被编译成 .dll 的代码读取时,它应该被声明为 export。
当调用 dll 的代码读取头文件时,应将其声明为 dllimport。
我倾向于制作宏块,例如:
#ifndef DLL_IFACE
#ifdef DLL_IFACE_EXPORT
#define DLL_IFACE _declspec( dllexport )
#else // !DLL_IFACE_EXPORT
#define DLL_IFACE _declspec( dllimport )
#endif // !DLL_IFACE_EXPORT
#endif // !DLL_IFACE
然后对于作为 dll 接口一部分的标头中的所有符号,我使用 DLL_IFACE 声明这些符号。当 dll 代码读取标头时,我使用“#define DLL_IFACE_EXPORT”启动 .cpp 文件
您可以使用_strlwr_s
而不是strlwr
.