簡體   English   中英

在MSVC 2010項目中添加.dll文件的正確方法是什么

[英]What is the correct way to add .dll file in a MSVC 2010 project

我需要在MSVC 2010中的win32控制台應用程序項目中使用庫libMPSSE.dll 。編寫代碼后,我只是將dll復制到我的.cpp文件所在的文件夾中。 我能夠成功編譯,但問題是我有鏈接錯誤:

libMPSSE.dll:致命錯誤LNK1107:文件無效或損壞:無法讀取0x308

這是dll本身的問題還是dll路徑有問題。 我們如何將dll添加到項目中?

他們沒有提供任何.lib文件。 完整的代碼在這里

這些是鏈接到DLL的常用步驟:

  1. 在任何需要使用DLL中的函數的源文件中包含DLL的頭文件。 您通常需要確保構建環境的include路徑包含頭文件的位置。 在IDE中,您可以使用Additional Include Directories配置設置執行此操作。
  2. 將DLL的.lib文件傳遞給鏈接器。 在IDE中,您可以通過將.lib文件添加到Additional Dependencies設置來完成此操作。 您通常需要將.lib文件的路徑添加到Additional Library Directories設置。
  3. 完成后,您的程序應該編譯和鏈接。 要使其運行,您需要確保可以在運行時找到DLL本身。 實現這一目標的最簡單方法是將其放在與可執行文件相同的目錄中。

我的猜測,看看你的錯誤信息,是在第2步中你將.dll傳遞給鏈接器而不是傳遞.lib文件。

如前所述,您無法直接使用C鏈接器鏈接到.dll文件。 有win32 API可以加載.dll文件並返回指向函數的指針。 通常,.dll文件附帶.lib文件包含為您帶來此負擔的代碼,並提供API .dll文件公開。 您只需要鏈接到此.lib文件並將.dll文件放在創建的.exe文件附近。

特別是關於libMPSSE,它在發行說明中說,您可以將提供的.a文件重命名為.lib文件,以便在Visual Studio中鏈接到它(項目屬性 - >配置屬性 - >鏈接器 - >輸入)。 我嘗試了它,它的工作原理。

暫無
暫無

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

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