2010-12-14 106 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