我在 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)吗?
非常感谢