簡體   English   中英

使用visual studio導入lib文件

[英]importing a lib file using visual studio

我想導入一個文件如下:

#import "francais.dll"

它告訴我它無法打開源文件“C:/xxxx/Proj/Release/francais.tlh”

庫文件存在於Proj中。

怎么解決?

它不是“庫文件”,而是COM服務器。 #import指令從嵌入在francais.dll中的類型庫自動生成.tli和.tlh文件。 沒有明顯的原因導致它無法加載.tlh文件,該DLL可能有問題。 很難從這里看到。 確保您沒有忽略先前的錯誤,從錯誤列表窗口的頂部開始。

作為基本檢查,您可以自己查看該類型庫。 從Visual Studio命令提示符運行OleView.exe並使用文件+視圖Typelib,選擇該DLL。 您需要查看類型庫的內容,反編譯成IDL。

您也可以在VS中看到它,使用File + Open + File並選擇DLL。 您將看到DLL中嵌入的資源,需要一個標記為“TYPELIB”的節點,其中一個資源的ID為1,即實際類型庫。 如果這兩個驗證出現任何問題,那么#import指令也不太可能正常工作。

請注意,嘗試在Release目錄中找到該文件很奇怪。 您通常始終從Debug配置開始。

您需要將.lib添加到項目屬性中。 你有一個.lib與DLL一起使用嗎? 處理類似問題的另一個問題可以在這里找到: 如何在Visual Studio C ++中使用第三方DLL文件?

需要注意的主要事項是你是否有一個.lib與你的DLL一起使用。 我之前做過的另一件事,但我不完全建議將DLL復制到與可執行文件相同的目錄中。 每當加載DLL時,Windows都會自動檢查可執行文件所在的路徑。

1)在菜單欄(窗口頂部)上單擊project - > properties (或alt + f7)。

項目屬性

2)打開配置properties - > linker 然后在general選項卡中,將目錄添加到"Additional Library Directories"

包括Dirs

3)然后單擊general下面的input並將lib的名稱添加到"Additional Dependencies"

額外的Libs

如果您堅持將Dll與您可以使用的代碼耦合(不是VS的所有編譯器支持):

#pragma comment(lib, "path_to_lib\\libname.lib")

#import用於COM庫而不是標准Dll

我在Visual Studio 2015中遇到過與COM服務器MSO.DLL(MS Office 14/2010)類似的問題。

首次構建/編譯后,(紅色)IntelliSense警告消失! 我真正的問題是確切的道路。 我必須手動編寫它。 復制/粘貼vom Explorer無法正常工作。

#import "C:\Program Files\Common Files\microsoft shared\OFFICE14\MSO.DLL" no_implementation rename("RGB", "ExclRGB") rename("DocumentProperties", "ExclDocumentProperties") rename("SearchPath", "ExclSearchPath")

暫無
暫無

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

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