2009-03-08 20 views
2

NUnitを使用してC#コードをテストしようとしましたが、既にC++コードに接続されています(アプリケーションが完全に動作するNUnitなし)。NUnitからC++コードを実行する

私のテストでは、AppDomain.CurrentDomain.ExecuteAssembly(..)でmain関数を実行しますが、C#コードがC++と "通信"しようとすると例外がスローされ、テストがクラッシュします。例外はSystem.Reflection.TargetInvocationExceptionです。誰かが持っていて、なぜそれが起こるのか非常に非常に役に立つと思うなら...。Naama

+0

デバッガーを使用してその例外をスローするコードのビットを分離しようとしましたか?例外はC#またはC++アプリケーションでスローされますか? – strager

+0

アプリのapp.configに何かを追加する必要がありましたか? – eglasius

+0

私はデバッガを使用しましたが、例外が発生しているコードを隔離しました。 C#オブジェクトに含まれるC++でオブジェクトを作成しようとしているときに発生します。 そして私はアプリケーションのapp.configにanyhingを追加します –

答えて

1

あなたの疑惑が正しいかどうかは、コンストラクタの中で通り抜けています。オブジェクトのコンストラクタでC++およびC++で記述されたオブジェクト(既にラップされており、アプリケーションが正常に動作しているときに完璧に動作する)を作成するには、例外がスローされます。 しかし、アプリケーションは非常に複雑ですが、説明のために必要な場合は、実際のものを象徴するデモアプリケーションを作成します。

+0

「あなたの」私のものですか? – strager

1

C++コードのクラスのコンストラクタで例外がスローされている可能性があります。例外を適切に処理していること、および例外がスローされないようにコンストラクタに適切な情報を与えていることを確認してください。

関連する問題