簡體   English   中英

如何檢查LIB導入庫是否完全匹配其DLL?

[英]How to check that LIB import library fully match its DLL?

我有一個帶有其導入庫的DLL。 當我嘗試引用導入庫時,出現鏈接器錯誤,提示某些功能無法解決。 我認為DLL及其導入庫的版本不匹配。 有什么方法可以檢查導入庫是否完全匹配其DLL,而無需通過DumpBin手動檢查大量功能?

問題在於頭文件包含.lib文件中未定義的功能。 您很可能有一個新的頭文件和一個過時的.lib文件。

可能的解決方案:

  • 請與庫供應商聯系以獲得與您使用的頭文件和DLL匹配的.lib文件。
  • 自己創建.lib文件

當您鏈接二進制文件時,僅* .lib庫很重要(包括導入庫,但顯然不包括DLL)。 鏈接器甚至可能沒有意識到它是導入庫,而不是其他靜態庫。 也可以創建混合庫,其中某些函數靜態地貢獻給* .lib文件,而其他函數則從某些DLL導入。

您尚未解決的功能只是在* .lib庫(包括導入庫)中不存在。 如果您確實鏈接了導入庫,並且確定您的DLL導出了未解析的函數,則您的導入庫要么不匹配,要么被生成為不導出該函數(例如,這些函數可能未在DLL項目的* .def文件中列出) )。

暫無
暫無

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

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