2012-03-05 22 views
1

C++クラスのC++/CLIラッパーを作成していますが、C++/CLIプロジェクトをビルドして作成したDLLがC#で読み込めず、Assembly.LoadがmessageNotFound例外をスローします"ファイルまたはアセンブリ 'CLIExport.dll'またはその依存関係の1つを読み込めませんでした。指定されたファイルが見つかりません。.NETアセンブリDLLに依存関係がありません

C++/CLIプロジェクトには、C++クラスが依存するラッパークラス、1つのヘッダーファイルのみが含まれています。ソースファイルとヘッダーファイルがソリューションに追加されているため、参照は追加されません。 C++/CLIプロジェクトのC++クラスへの参照を追加する必要はありますか?私は、C#アプリケーションがアセンブリがないと思っていることを知らないし、参照を追加するために必要なものがわからない、C++/CLIプロジェクトはクラスのような.net型への参照を持つ必要があるシステム名前空間?

ありがとうございました。

+1

64ビットプロジェクトにx86 libをロードしようとしていますか? – squelos

+0

私はそうは思わない、私は64ビットPC上で、それをテストしているC#プロジェクトと同じマシン上でC++/CLIプロジェクトを作った。 64ビットマシンでx86ライブラリを作成できますか? –

+1

http://www.dependencywalker.com/を使用してラッパーDLLを開き、存在しない依存関係がないかどうかを確認します。 –

答えて

1

私は、問題は、管理されていないx86 dllを64ビットソリューションで使用しようとしていると考えていると思います。

お試しください:解決策を右クリックしてをクリックし、すべてのプロジェクトをx86に設定して、もう一度ビルドを試してください。 What does the Visual Studio "Any CPU" target mean?

かつ迅速に:あなたがここまで読むことができます

イムあなたのビルド構成は、したがって、エラーメッセージは、矛盾していることをかなり確信して(私は同じ問題に数回走りました...) VSのさまざまなターゲットの概要:http://visualstudiohacks.com/articles/visual-studio-net-platform-target-explained/

+0

私のソリューションには1つのプロジェクトしかありません。私はこのソリューションにC++ソースファイルを追加しましたが、それは間違っていますか? C++プロジェクト全体をソリューションに追加する必要がありますか? confiruration managerには、x64/x86オプションはありません。build config(debug/release)、Platform(win32は唯一のオプション)、 'build'とマークされたチェックボックスを変更することができます –

+0

あなたのプロジェクトに新しいConfigurationを作成できません? – squelos

+0

@BillWalton確かに2つのプロジェクトがありますか?C++クラスとC++/CLIラッパークラスと、他のプロジェクトで生成されたDLLを使用するC#プロジェクトを含むプロジェクトですか? –

関連する問題