私はこの問題を抱えています:
から、で定義されたを登録する場所Managed C++を使用します。ライブラリはこれを実行し、その中で。を発生させます。デバッグモードではが実行されますが、リリースモードでは実行されません。しかし、同じシナリオで、例外が100%マネージコードによってスローされた場合、私はそれをキャッチできます。C# DLLdelegateManaged C++C#delegatenative exceptiontry/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#実行します。デバッグでは問題ありませんが、リリースでは問題ありません。delegatetry/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#リリースモードで例外をキャプチャします。