DLL和名称管理

时间:2011-05-11 07:29:56

标签: c++ visual-c++ name-decoration

我有第三方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(一个下划线太多)。

感谢。

1 个答案:

答案 0 :(得分:1)

这是一个链接器错误。您需要链接与DLL关联的.LIB文件,这将为链接器提供一个承诺,即在加载DLL本身时该函数将在运行时可用。

相关问题