2010-12-14 60 views
0

我有单码呼叫mono_method(指针)从C

public static unsafe int* mono_method (int* p)
{
//....
return p;
}

,并希望从本地C调用它

MonoObject *result = mono_runtime_invoke(mono_method, NULL, args, NULL);

我在尝试了一些不同的指针,变量args标志(应该是void **)
但是当我执行运行时调用时,总会得到SIGSEGV错误。

我的问题是: 是否有可能通过runtime_invoke从c传递指针到单声道以及如何?

此致敬意。

回答

1

您可能已经测试了除文档所述的所有内容外 http://www.mono-project.com/Embedding_Mono:params数组包含具有相同约定的方法的参数:MonoObject *指向对象实例的指针,否则指向值类型的指针。

void* args[1]; 
int val = 10; 
MonoObject *result; 
args [0] = &val; 
result = mono_runtime_invoke(mono_method, NULL, args, NULL); 
/* result will be a boxed IntPtr since pointer types can't be boxed themselves */ 
+0

嗯,还有那么接下来的问题是,是否有可能通过一个函数指针,而不是指向int的指针和执行功能单声道代码? – Gobliins 2010-12-15 08:02:28