簡體   English   中英

DLL和名稱管理

[英]DLL and Name Mangling

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

謝謝。

這是一個鏈接器錯誤。 您需要鏈接與DLL關聯的.LIB文件,這將為鏈接器提供一個承諾,即在加載DLL本身時該函數將在運行時可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM