вызвать mono_method (указатель) из c - PullRequest
0 голосов
/ 14 декабря 2010

У меня есть монокод

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

и я хочу позвонить с нативного c

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

Я попробовал несколько разныхуказатели, переменные в флаге args (должно быть void **)
, но всегда получаю ошибку SIGSEGV при выполнении вызова во время выполнения.

Мой вопрос: возможно ли передавать указатели из c в mono черезruntime_invoke и как?

С наилучшими пожеланиями.

Ответы [ 2 ]

1 голос
/ 14 декабря 2010

Вы, возможно, протестировали все, кроме того, что написано в документации по 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 голосов
/ 14 декабря 2010

Этот вопрос только что задан здесь, но посмотрите на этот ответ .

...