1

这应该很容易(并且它在 C++ 中),但我找不到正确的语法来执行以下任务:

  1. 在 C# 中,我有一个整数“结果”,我想将它传递给托管 C++ 函数。
  2. 在托管 C++ 函数中,我将值“结果”设置为 6。
  3. 当函数返回时,我在 C# 中设置的值现在为 6。

(我使用上面的输入代码工具复制的代码段太丑了,我无法保证它的使用。)

在 C++ 中,我只需要使用一个整数指针,将指针传递给函数,让函数设置它,然后在调用者中设置值。如果有人可以在 C# 中编写一个小代码片段,它接受一个整数并以某种方式通过装箱或其他方式将其作为指针传递给托管函数,并让托管函数设置值,以便 C# 调用方具有值,我将非常感激return(但不是作为返回值)。将 C# 世界中的语法与托管 C++ 世界中的类似语法相匹配是成功的一半。

我什至想不出在谷歌搜索中表达这个问题的好方法。

4

1 回答 1

1

只需通过引用传递参数:

public ref class Example {
public:
    static void Foo(int% arg) {
        arg = 42;
    }
};

然后你从 C# 调用它:

int value;
Example.Foo(ref value);

并且不要忘记您也可以从方法中返回一个值。

于 2013-04-27T00:37:23.220 回答