Я пытаюсь создать метод, используя моно, где строка передается по ссылке, вот тестовый код, который у меня есть:
C ++:
static bool p_TestMethod(int num, MonoString ** response) { auto b = mono_string_new(mono_domain_get(), "Test repsonse"); response = &b; return true; } //... mono_add_internal_call("SharpCode.TestClass::Testmethod", p_TestMethod);
C #:
[MethodImpl(MethodImplOptions.InternalCall)] public static extern bool Testmethod(int num, out string response); public bool RunTheTest() { string x; Testmethod(0, out x); Console.WriteLine("Test: {0}", x); return true; }
Но ответ не печатается (только Test:)
Как правильно передать строку по ссылке, используя Mono?
Исправлено, делая это так:
*response = mono_string_new(mono_domain_get(), "Test repsonse");
как предложено Делнаном
Других решений пока нет …