C# 添加通过引用传递字符串的Mono内部调用

C# 添加通过引用传递字符串的Mono内部调用,c#,c++,mono,pass-by-reference,mono-embedding,C#,C++,Mono,Pass By Reference,Mono Embedding,我正在尝试使用mono创建一个方法,其中字符串通过引用传递, 以下是我的测试代码: C++: C#: 但没有打印响应(仅测试:) 如何使用Mono通过引用正确传递字符串?通过如下操作修复: *response = mono_string_new(mono_domain_get(), "Test repsonse"); 根据DelnA/P.D.建议使用 REF> /COD>关键字代替-Cux> Out/无论单侧发生什么,C++中代码> >响应=…./> >只是改变一个局部变量,因此不能正确。@

我正在尝试使用mono创建一个方法,其中字符串通过引用传递, 以下是我的测试代码:

C++:

C#:

但没有打印响应(仅测试:)


如何使用Mono通过引用正确传递字符串?

通过如下操作修复:

*response = mono_string_new(mono_domain_get(), "Test repsonse"); 

根据DelnA/P.D.建议使用<代码> REF> /COD>关键字代替-Cux> Out/<代码>无论单侧发生什么,C++中代码> >响应=…./> >只是改变一个局部变量,因此不能正确。@ AlxBalac没有区别。@德尔南我尝试单链*响应而不是单链**响应,但这也不起作用。在阅读以下内容后,我决定测试双指针:。但是没有结果。@ikkentim在浏览了这一页之后,我同意指向指针的指针似乎是正确的参数类型。但这不是我想说的<代码>响应=&b在概念上是完全错误的。它不影响参数指向的对象,只会使您无法访问用于指向的参数;而
b
的地址有一个过期日期,它不应该超过函数调用。我希望
*respone=b虽然我不能保证我的期望,因为它们完全基于我的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;
    }
*response = mono_string_new(mono_domain_get(), "Test repsonse");