7

以下のようにファイルをインポートしようとしています。

#import "francais.dll"

ソースファイル「C:/xxxx/Proj/Release/francais.tlh」を開くことができないと私に言っています

ライブラリ ファイルは Proj に存在します。

それを解決する方法は?

4

4 に答える 4

11

これは「ライブラリ ファイル」ではなく、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 ディレクトリでファイルを見つけようとするのは奇妙であることに注意してください。通常は、常にデバッグ構成から始めます。

于 2013-10-15T15:48:39.713 に答える
9

プロジェクト プロパティに .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"

追加のライブラリ

于 2013-10-15T15:05:55.380 に答える
4

使用できるコードからDLLを結合することを主張する場合(すべてのコンパイラがそれをサポートしているわけではありませんが、VSはサポートしています):

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

#import標準DLLではなくCOMライブラリに使用

于 2013-10-15T15:48:29.927 に答える