我想導入如下文件導入一個lib文件:使用Visual Studio的
#import "francais.dll"
它說,我認爲它無法打開源文件「C:/xxxx/Proj/Release/francais.tlh 「
庫文件存在於Proj中。
如何解決?
我想導入如下文件導入一個lib文件:使用Visual Studio的
#import "francais.dll"
它說,我認爲它無法打開源文件「C:/xxxx/Proj/Release/francais.tlh 「
庫文件存在於Proj中。
如何解決?
您需要將.lib添加到項目屬性中。你有一個.lib去配合DLL嗎?處理類似問題的另一個問題可以在這裏找到:How do I use a third-party DLL file in Visual Studio C++?
要注意的主要問題是您是否有一個.lib
與您的DLL一起去。我之前完成的另一件事,但我不會完全建議將DLL複製到您的可執行文件相同的目錄。每當加載DLL時,Windows會自動檢查的可執行文件路徑
1)在菜單欄(窗口頂部)點擊project
- >properties
(或ALT + F7)。
2)打開配置properties
- >linker
。然後在general
選項卡中,將目錄添加到您的"Additional Library Directories"
。
3)然後點擊input
右下方general
並添加LIB的名字到"Additional Dependencies"
我接受你的答案。謝謝! – MelMed
如果你堅持從代碼,你可以連接你的DLL使用(不是所有的編譯器支持,VS都是這樣):
#pragma comment(lib, "path_to_lib\\libname.lib")
使用#import
爲COM庫不用於標準Dll
它不是一個「庫文件」,它是一個COM服務器。 #import指令從嵌入在francais.dll中的類型庫中自動生成一個.tli和一個.tlh文件。沒有明顯的理由說明它無法加載.tlh文件,可能是該DLL有問題。很難從這裏看到。請確保您不會忽略較早的錯誤,請從錯誤列表窗口的頂部開始。
作爲基本檢查,您可以自己查看該類型庫。從Visual Studio命令提示符運行OleView.exe並使用File + View Typelib,選擇該DLL。您需要查看類型庫的內容,反編譯爲IDL。
你也可以在VS本身看到它,使用File + Open + File並選擇DLL。您將看到嵌入在DLL中的資源,需要一個標有「TYPELIB」的節點,其中一個資源的ID爲1,這是實際的類型庫。如果這兩個驗證出現任何問題,那麼#import指令也不可能工作。
請注意,它試圖在發佈目錄中查找文件很奇怪。你通常總是從Debug配置開始。
我similiar麻煩COM服務器MSO.DLL(MS Office 14的/ 2010)在Visual Studio 2015年
(紅色)預警智能感知先建後消失/編譯! 我真正的問題是確切的路徑。我必須手動編寫它。複製/粘貼vom Explorer不起作用。
#import "C:\Program Files\Common Files\microsoft shared\OFFICE14\MSO.DLL" no_implementation rename("RGB", "ExclRGB") rename("DocumentProperties", "ExclDocumentProperties") rename("SearchPath", "ExclSearchPath")
您是否已將路徑添加到項目屬性的DLL? – zero298
@ zero298我不明白。抱歉。你的意思是,我添加了francais.dll到我的項目中嗎? – MelMed
另外,我不確定'.tlh'文件是什麼。這是一個源文件/頭文件嗎? – zero298