基本的にコード行
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 にコンパイルされたコードによって読み取られる場合は、エクスポートを宣言する必要があります。
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 ファイルを開始します。