2017-03-17 48 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