1
我無法鏈接由「純」C .c文件的項目中的幾個cpp文件組成的靜態庫。 .c文件是尋找與語法_FUNCTIONAME一個函數對象,就像這樣:強制Visual Studio C++靜態庫的導出名稱
logforwarder.obj : error LNK2001: unresolved external symbol _getEventLogProviders
不過的.lib文件導出這樣的: 轉儲文件的M:... \發佈\ recvevent.lib
File Type: LIBRARY
Exports
ordinal name
[email protected]@[email protected] (unsigned int __cdecl _getE
ventLogProviders(char * *))
Summary
C3 .debug$S
14 .idata$2
14 .idata$3
4 .idata$4
4 .idata$5
C .idata$6
我exports.def文件看起來像這樣:
EXPORTS
getEventLogProviders=getEventLogProviders @4
庫項目可以成功連接,導出功能是這樣的:
Dump of file M:\...\screenshot.lib
File Type: LIBRARY
Exports
ordinal name
[email protected]
我在做什麼錯?
幾乎在那裏,現在dumpbin給我:「getEventLogProviders」作爲函數名,而鏈接仍然搜索「_getEventLogProviders」。 – Konrads
工作線路:「_getEventLogProviders = _getEventLogProviders @ 4」 – Konrads
這是另一個錯誤。使用導出的程序不使用正確的調用約定。它使用__cdecl而不是__stdcall。這會在運行時不平衡堆棧,很難診斷。 –