2016-07-08 1 views
0

私はWindowsには新しく、dllを生成するdllプロジェクトと、消費するか、 DLLの関数。私はこれを実行するためにビジュアルスタジオ2010を使用しています。現在、構成プロパティのdllの一般的なプロパティを確認すると、ターゲット名はDecryptEmailDllになり、ターゲット拡張子は.dllになります。これでテストexeが正常に実行され、目的の出力が得られます。しかし、私がTransformEmailにdllのターゲット名を変更しようとすると、ビルドは正常ですが、実行中に "DecryptEmailDllを見つけることができません"と表示されます。私は古い名前で新しいDLLではなく古いDLLを見つけようとしている理由を理解できません。dllプロジェクトのプロパティでdllの名前を変更した後にdllファイルを消費する.exeを実行できません

答えて

0

test.exeは、検索するファイル名で作成されています。だからあなたはそれを変更し、新しいdllの名前でそれを再構築する必要があります。

+0

私はファイル名を指定していません。 exeはそのDLLの関数を呼び出します。それは –

+0

test.exeのソースとリソースをチェックしてください。どのDLLからでも関数を呼び出すことはできません。どちらを動的にロードするかを指定する必要があります。 編集:Windows .exeは、必要なdllをexeファイル情報に直接指定することができるため、.exe自体のロード中にOSによってdllが読み込まれます(dll名はリソースの一部または.exeの依存関係設定プロジェクト)、または.dllというファイル名でloadLibrary関数の1つを動的に呼び出すことができます。次に、関数の名前で目的の関数を検索します。 – Ped7g

+0

動的ロードではありません。私はちょうどdllの.hをインクルードし、その関数の1つを呼び出しました。他のものはありません –

0

DLLの名前を変更した場合、静的にdllをインポートすると、import lib宣言を変更する必要があります(libとexpの名前をdllという名前で指定したと思います) 。動的にインポートする場合は、LoadLibrary関数のパラメータを変更します。

関連する問題