单声道 c# 嵌入,mono_runtime_invoke 应用程序崩溃
Mono c# embedding, mono_runtime_invoke crash app
我正在将 Mono 嵌入到我的 C++ 应用程序中。我遇到了 mono_runtime_invoke()
.
的问题
这里是调用mono_runtime_invoke
的方法:
void CSScript::CallFunction(MonoMethod * function, void ** parameter)
{
inside_function = true;
MonoObject* exception = nullptr;
MonoObject* obj = mono_runtime_invoke(function, mono_object, parameter, &exception);
if (exception)
{
mono_print_unhandled_exception(exception);
}
}
//---------------------
CallFunction(start, nullptr);
这里是我调用的 c# 函数 (Start()):
public class Nngf
{
void Start ()
{
GameObject go = null;
go.SetName("Hi!");
}
}
如您所见,Start 方法从空 class (Gameobject) 调用方法 (SetName),我应该在 c++ CallFunction() 方法中得到一个 NullReference 异常。但是,应用程序崩溃了:
我已经在 Unity 中测试了 c# 脚本,但出现 NullReference 错误。
我需要做什么?我错过了什么?
已解决。我只需要停用选项 "Break when this exception is thrown" 并且应用程序继续,我可以获得异常消息。
我正在将 Mono 嵌入到我的 C++ 应用程序中。我遇到了 mono_runtime_invoke()
.
这里是调用mono_runtime_invoke
的方法:
void CSScript::CallFunction(MonoMethod * function, void ** parameter)
{
inside_function = true;
MonoObject* exception = nullptr;
MonoObject* obj = mono_runtime_invoke(function, mono_object, parameter, &exception);
if (exception)
{
mono_print_unhandled_exception(exception);
}
}
//---------------------
CallFunction(start, nullptr);
这里是我调用的 c# 函数 (Start()):
public class Nngf
{
void Start ()
{
GameObject go = null;
go.SetName("Hi!");
}
}
如您所见,Start 方法从空 class (Gameobject) 调用方法 (SetName),我应该在 c++ CallFunction() 方法中得到一个 NullReference 异常。但是,应用程序崩溃了:
我已经在 Unity 中测试了 c# 脚本,但出现 NullReference 错误。
我需要做什么?我错过了什么?
已解决。我只需要停用选项 "Break when this exception is thrown" 并且应用程序继续,我可以获得异常消息。