0
基本的代碼視覺工作室9不一致的Dll聯動
extern char *strlwr OF((char *s));
行給出了錯誤
warning C4273: 'strlwr' : inconsistent dll linkage
,我不知道爲什麼。這不是我的代碼,所以我有問題找出如何解決它。
基本的代碼視覺工作室9不一致的Dll聯動
extern char *strlwr OF((char *s));
行給出了錯誤
warning C4273: 'strlwr' : inconsistent dll linkage
,我不知道爲什麼。這不是我的代碼,所以我有問題找出如何解決它。
尋找:
_declspec(dllexport);
_declspec(dllimport);
附着的聲明strlwr。這與此有關。
基本上,當你在dll本身聲明strlwr時,例如當包含strlwr的頭文件被編譯到.dll中的代碼讀取時,它應該被聲明爲導出。
當調用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接口I聲明這些符號與DLL_IFACE的一部分的所有的符號。當通過dll代碼讀取頭文件時,我使用「#define DLL_IFACE_EXPORT」啓動.cpp文件。
感謝您的幫助。工作得很好。 – SSEMember 2012-07-09 15:06:47