出現這種問題的情形有很多,這裡隻說明下我遇到的這種情形及其解決方法:
問題原因:
1、 用VS的MFC DLL模闆建立DLL項目;
2、出于實際需要,将自動生成的App模闆代碼删掉,改用win32風格的DLL入口:
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID /*lpReserved*/
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
......
}
return TRUE;
}
3、經過上述改動後,編譯,就會報出DllMain的連結錯誤。
解決:
很明顯,根據連結給出的錯誤資訊,一個項目裡面出來了兩個入口,這肯定是不允許的。可是,另外一個入口在哪呢?明明已經删掉了啊(App類)。
答案是:删掉預處理器_USRDLL。