3

このエラーは、C++ CLI プロジェクトのビルド出力として生成された DLL を使用している通常の C# コンソール プログラム内から発生します。DumbThing public ref classそこで、静的メソッドを使用した単純なものがあります。私は単にその関数を呼び出すか、少なくとも 1 つの小さな DumbThing オブジェクトをインスタンス化し、C# が C++ CLI で生まれた DLL から取得したコードを呼び出すことができることを確認したいと思いますが、エラーがスローされるため機能していません。

First-chance exception at 0x000007fefd2acacd (KernelBase.dll) in DumbTest.exe: Microsoft C++ exception: EEFileLoadException * __ptr64 at memory location 0x007fc228..

更新: 元の例外の下に、別の最初の例外があります:

First-chance exception at 0x77cace3b (ntdll.dll) in DumbTest.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff.

同僚は、コンパイル時の問題 (いくつかのオプション) である可能性があると指摘しましたが、何が原因であるかの手がかりがありません。出発点のヒントを教えてください。

4

1 に答える 1

3

おそらくビット数の問題です。C++/CLI プロジェクトを特定のプラットフォーム用にコンパイルした場合は、C# プロジェクトがそれに応じてプラットフォームを設定していることを確認してください。C# プロジェクトのデフォルトは「Any CPU」で、JIT コンパイラは 64 ビット アーキテクチャで x64 コードを生成します。C++/CLI プロジェクトが x86 用にビルドされている場合、64 ビット マシン上の x64 プロセスにロードすることはできません。

于 2012-07-22T09:37:22.243 に答える