这可能是一个明显的问题,但我已经用谷歌搜索了 2 个小时,无法弄清楚。所以我在 C++ 中有一个如下所示的类:
class MyClass
{
public:
static void Function(float& r) { r = 10; }
};
我有一个看起来像这样的互操作包装类:
public ref class Wrapper
{
public:
static void WrappedFunction(float& r) { MyClass::Function(r); }
};
现在我想从 C# 中调用它,如下所示:
float r;
Wrapper.WrappedFunction(ref r);
但是我在 C# 端收到一个编译错误,上面写着:
cannot convert from 'ref float' to 'float*'
我有一个模糊的概念,我需要在 Wrapper 类中做一些事情,但我不知道是什么。另外,我知道这个用例对于 dllimport/pinvoke 来说是微不足道的,但出于性能原因,我想用 C++/CLI 包装它。
任何帮助是极大的赞赏!