以下のようにファイルをインポートしようとしています。
#import "francais.dll"
ソースファイル「C:/xxxx/Proj/Release/francais.tlh」を開くことができないと私に言っています
ライブラリ ファイルは Proj に存在します。
それを解決する方法は?
以下のようにファイルをインポートしようとしています。
#import "francais.dll"
ソースファイル「C:/xxxx/Proj/Release/francais.tlh」を開くことができないと私に言っています
ライブラリ ファイルは Proj に存在します。
それを解決する方法は?
これは「ライブラリ ファイル」ではなく、COM サーバーです。#import ディレクティブは、francais.dll に埋め込まれているタイプ ライブラリから .tli および .tlh ファイルを自動生成します。その .tlh ファイルをロードできない明確な理由はありません。おそらく、その DLL に問題があります。ここからは見えにくい。以前のエラーを無視していないことを確認し、[エラー リスト] ウィンドウの一番上から始めてください。
基本的なチェックとして、そのタイプ ライブラリを自分で調べることができます。Visual Studio コマンド プロンプトから OleView.exe を実行し、File + View Typelib を使用して、その DLL を選択します。IDL に逆コンパイルされたタイプ ライブラリの内容を確認する必要があります。
VS 自体でも表示できます。File + Open + File を使用して DLL を選択します。DLL に埋め込まれているリソースが表示されます。実際のタイプ ライブラリである ID 1 の 1 つのリソースを含む "TYPELIB" というラベルの付いたノードが必要です。これら 2 つの検証で問題が発生した場合、#import ディレクティブも機能しない可能性があります。
また、Release ディレクトリでファイルを見つけようとするのは奇妙であることに注意してください。通常は、常にデバッグ構成から始めます。
プロジェクト プロパティに .lib を追加する必要があります。DLL と一緒に使用する .lib はありますか? 同様の問題を扱う別の質問は、次の場所にあります: Visual Studio C++ でサードパーティの DLL ファイルを使用するにはどうすればよいですか?
.lib
注意すべき主なことは、DLL を使用する必要があるかどうかです。以前に行ったことがありますが、完全にはお勧めしませんが、DLL を実行可能ファイルと同じディレクトリにコピーすることです。DLL を読み込むたびに、Windows は実行可能ファイルのパスを自動的にチェックします。
1)メニューバー (ウィンドウの上部) でproject
-> properties
(または alt+f7) をクリックします。
2)構成を開くproperties
-> linker
. 次に、general
タブで、ディレクトリを"Additional Library Directories"
.
3)input
次に、右下をクリックしてgeneral
、ライブラリの名前を"Additional Dependencies"
使用できるコードからDLLを結合することを主張する場合(すべてのコンパイラがそれをサポートしているわけではありませんが、VSはサポートしています):
#pragma comment(lib, "path_to_lib\\libname.lib")
#import
標準DLLではなくCOMライブラリに使用