這可能是一個明顯的問題,但我一直在Google上搜索2個小時,但無法弄清楚。所以,我有在C++中,看起來像這樣一類:如何通過引用將C++中的float引用傳遞迴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*'
我有一個含糊的想法,我需要在包裝類中做些事情,但我不知道是什麼。另外,我知道這個用例對於dllimport/pinvoke來說是微不足道的,但是我想用C++/CLI來包裝這些用於性能方面的原因。
任何幫助,非常感謝!
嘗試從浮動&浮動*更改。而C++函數必須寫成「static void Function([out] float * r)」。哦,而且無處不在。 –
語法錯誤,請使用float%指定託管引用而不是非託管&。 –
@nsinreal:在開始提供信息而不先測試它之前,您可能需要更多的C++/CLI經驗。 –