2
我有託管的C++ Wrapper用於非託管C++代碼,並且需要在方法中使用一些指針參數!從C#調用託管的C++函數#
C#中調用這個包裝器函數的最佳方式是什麼(我在託管代碼中使用引用參數嘗試它並創建指針,然後調用非託管代碼)?
實施例:
// c++/managed
Uint32 someMethod(int &value);
Uint32 Wrapper::someMethod(int &value)
{
int *valuePtr = &value;
return unmanagedObj->someMethod(valuePtr);
}
// c++/unmanaged
Uint32 someMethod(int *value);
Uint32 UnmanagedClass::someMethod(int *value)
{
...
}
我用在VS2008「添加參考」被管理的C++包裝,但是當我打電話的someMethod 在C#僅存在一個指針,而不是參考?
// c#
// e.g. value conversion to C++ pointer
...
Wrapper wrapper = new Wrapper();
wrapper.someMethod(ref value); // should work but here we have an C++ pointer
// and not a reference ?!?!
謝謝任何提示!
迎接
託管C++的正式名稱C++ CLI,所以我重申了這一點。 – Xeo 2011-06-01 11:27:19
好的抱歉!它被忽視了! – leon22 2011-06-01 11:52:38