1
在我的Visual Studio 2010中有2個項目。一個是靜態庫(如果有人問了,mhook 2.3),另一個是DLL。兩者都被設置爲編譯爲/ MT。找到一個符號,並找到其他「未解析的外部符號」
mhook項目在其mhook.h兩個功能:
BOOL Mhook_SetHook(PVOID *ppSystemFunction, PVOID pHookFunction);
BOOL Mhook_Unhook(PVOID *ppHookedFunction);
DLL項目引用mhook項目,並同時使用Mhook_SetHook和Mhook_Unhook。使用相同的mhook.h。當我編譯DLL項目,我得到以下錯誤:
1>hookdll.obj : error LNK2001: unresolved external symbol _Mhook_Unhook
注意,該鏈接成功地找到了Mhook_SetHook。如果我註釋掉使用Mhook_Unhook,則程序編譯成功。
DUMPBIN表明,這兩個符號出現在靜態庫:
>dumpbin /symbols mhook-test.lib|find "Mhook"
015 00000000 SECT4 notype() External | [email protected]@[email protected] (i
nt __cdecl Mhook_SetHook(void * *,void *))
122 00000000 SECT3B notype() External | [email protected]@[email protected] (int _
_cdecl Mhook_Unhook(void * *))
>
我迷失和困惑,請大家幫忙。