我正在使用vs2012創建一個小包裝DLL,鏈接到用VC6構建的另一個DLL(.lib)。鏈接到vc6時未解決的符號dll/lib
我得到這樣的鏈接錯誤:
error LNK2019: unresolved external symbol [email protected]
我添加了VC6的dll到鏈接線提供的庫文件,正如我在過去所做的那樣......有一些版本問題就在這裏?在VC6 DLL頭文件在我認爲是標準的方式聲明功能:
#define DLLIMPORT extern "C" __declspec(dllimport)
DLLIMPORT ULONG WINAPI functionName(...);
使用DUMPBIN /在VC6庫文件出口顯示「functionName」沒有小鬼前綴和「@ 8」 ..不知道這是一個問題,或者只是對我來說,只是dumpbin對我很好,並且對我有影響。
我不是一個Windows的人,不知道爲什麼鏈接器沒有找到符號...幫助!
發回來,你不想要它。您必須刪除DLLIMPORT和WINAPI,但如果該文件出現在.h文件中,則該文件不太可能正確。 –
恩,感謝您的評論,但爲什麼我必須刪除DLLIMPORT和WINAPI? DLLIMPORT告訴編譯器/鏈接器,我正在引用的函數將在dll中提供,這是正確的。 WINAPI是調用約定,也是正確的.. –
DLLIMPORT說DLL有一個* extra *導出,其名稱以__imp開頭。 WINAPI說調用約定是__stdcall,它會產生額外的@ 8。由於您無法使用dumpbin.exe找到這些文件,因此您希望將其發回,這對您沒有任何用處。 –