私はこの問題を抱えています:
から、で定義されたを登録する場所Managed C++
を使用します。ライブラリはこれを実行し、その中で。を発生させます。デバッグモードではが実行されますが、リリースモードでは実行されません。しかし、同じシナリオで、例外が100%マネージコードによってスローされた場合、私はそれをキャッチできます。C#
DLL
delegate
Managed C++
C#
delegate
native exception
try/catch
これは私が使用しているコードです:
Managed C++
:
class CNativeClass
{
public:
int one;
}
// This C method is registred like Delegate in C#
void OnMsgReceived(ManagedObjectInCSharp^ obj)
{
CNativeClass* pelota;
pelota->one = 0; // <-- This procude a NullPointerException
Console::WriteLine(L"OnMsgReceived");
}
私はこれを。でC#
実行します。デバッグでは問題ありませんが、リリースでは問題ありません。delegate
try/catch
//But if I defined the method like this:
void OnMsgReceived(ManagedObjectInCSharp^ obj)
{
try
{
CNativeClass* pelota;
pelota->one = 0; // <-- This procude a NullPointerException
Console::WriteLine(L"OnMsgReceived");
}
catch(const char* str)
{
}
}
C#
リリースモードで例外をキャプチャします。