3

我有一个第三方 LIB,它的符号导出为纯 C/cdecl,因此例如dumpbin.exe /SYMBOLS报告两者都__imp_nvmlInitnvmlInit导出。

但是在 Visual Studio 2010 中,当我尝试导入它们时,头文件将具有

extern "C" nvmlReturn_t nvmlInit(...);

但是当我尝试编译时,出现以下错误:

main.obj:错误 LNK2019:函数 _main 中引用的未解析的外部符号 _nvmlInit

如何阻止 Visual Studio 查找带有前导下划线的符号?__declspect(dllimport)不起作用,因为它装饰为__imp__nvmlInit(一个下划线太多)。

谢谢。

4

1 回答 1

1

那是一个链接器错误。您需要链接与 DLL 关联的 .LIB 文件,这将向链接器保证,当加载 DLL 本身时,该函数将在运行时可用。

于 2011-05-11T07:53:33.417 回答