VC++ で DLL を作成できません。移植可能なコードを作成するために言語拡張機能を使用したくありません。ただし、 stdafx.h のデフォルトの使用には言語拡張が必要なようです。
dllmain.cpp を書き直して、stdafx.h への依存関係を削除しようとしています。まず、プリコンパイル済みヘッダーの使用を削除しました。それでも同じコンパイル エラーが発生します。
c:\program files (x86)\microsoft sdks\windows\v7.0a\include\driverspecs.h(142): error C2008: '$' : unexpected in macro definition
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\driverspecs.h(294): error C2008: '$' : unexpected in macro definition
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\driverspecs.h(295): warning C4005: '__' : macro redefinition
1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\driverspecs.h(142) : see previous definition of '__'
これまでのところ、私の dllmain.cpp は次のようになっています。
// dllmain.cpp : Defines the entry point for the DLL application.
#include "WTypes.h"
#define DLL_PROCESS_ATTACH 1
#define DLL_THREAD_ATTACH 2
#define DLL_THREAD_DETACH 3
#define DLL_PROCESS_DETACH 0
typedef void far *LPVOID;
int WINAPI DllMain( HINSTANCE hModule,
int ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return 1;
}
ここで正しいアプローチを使用していますか? WTypes.h の最後の依存関係 (HINSTANCE) を取り除くことはできますか?
どうもありがとう