2017-03-17 42 views
1

可能有人請告訴我如何從一個lib文件稱這種類型的函數調用(我得到這個從dumpbin /list) 那就是: 00A 00000000 SECT4 notype External | [email protected]@3P6G_NXZA (bool (__stdcall* GetWindowPauseOnSizeMove_ext)(void))從* .LIB C++

我試過

#pragma comment(lib, "MyLib") 
extern "C" bool _stdcall GetWindowPauseOnSizeMove_ext(void) 

,但我得到這個錯誤

Severity Code Description Project File Line Suppression State 

錯誤LNK2019 unres olved外部符號_GetWindowPauseOnSizeMove_ext @ 0功能_Test NF_dll d引用:\測試\測試\ main.obj 1

任何幫助將是巨大的

+0

我不知道答案,但解決它的一個方法是採取你認爲應該匹配的簽名,並將它自己編譯成一個庫。然後你就可以看到你建立的圖書館裏到底發生了什麼,看看它與你試圖匹配的圖書有什麼不同。 –

回答

4

根據該參數在dumpbin列表重整,似乎該函數實際上已經編譯爲C++。

嘗試刪除extern "C",並嘗試使用調用約定(__stdcall,_cdecl,__fastcall)。


如果http://demangler.com/是正確的,函數簽名應該是:

BOOL __stdcall GetWindowPauseOnSizeMove_ext(void) 

即接近你所擁有的,只有C++鏈接而不是C鏈接。

+0

非常感謝,希望以前我知道那個網站:D – RattlerCreed