我有这个问题:
从 开始Managed C++
,我使用C#
DLL
我在其中注册delegate
定义的地方Managed C++
。库C#
执行此操作delegate
,并在其中引发一个native exception
. 在调试模式下try/catch
执行,但在发布模式下不执行。但在同样的场景中,如果异常是由 100% 托管代码抛出的,我可以捕捉到它。
这是我正在使用的代码:
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
在Debug中它可以,但在Release中,它不是。
//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#
在发布模式下捕获异常。