3 つのプロジェクトを持つ C# アプリケーションを作成しました。
- C# プロジェクト [スタートアップ]
- CLI プロジェクト
- ネイティブ C++ プロジェクト [VC90 コンパイラ (Visual Studio 2008) を使用]
ここでは、C++ プロジェクトに単純なクラスがあり、CLI プロジェクトからこのクラスの非常に単純なメソッドをエクスポートして呼び出しています。
コードは正常にビルドされますが、実行しようとすると、次の出力メッセージが表示されて終了します。
プログラム '[6088] VS2012_ConsoleApp.exe: Native' はコード -1073740791 (0xc0000409) で終了しました。プログラム '[6088] VS2012_ConsoleApp.exe: Managed (v4.0.30319)' はコード -1073740791 (0xc0000409) で終了しました。
ヒープにクラス オブジェクトを作成している場合は問題なく動作します。静的オブジェクト インスタンスを作成すると、エラーが発生します。
// WORKING CODE [Object creation on heap]
NativeClass* cls = new NativeClass();
int returnVal = cls->Add(A, B);
// This code is not working
NativeClass cls;
int returnVal = cls.Add(A, B);
return returnVal;