[英]DLL and Name Mangling
我有一個第三方LIB,其符號導出為普通的C / cdecl,因此例如dumpbin.exe /SYMBOLS
報告導出__imp_nvmlInit
和nvmlInit
。
但是在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.