C# 调用托管C++;来自C的函数# 我有一个托管C++ C++包,用于非托管C++代码,需要在方法中使用一些指针参数!

C# 调用托管C++;来自C的函数# 我有一个托管C++ C++包,用于非托管C++代码,需要在方法中使用一些指针参数!,c#,pointers,c++-cli,unmanaged,managed,C#,Pointers,C++ Cli,Unmanaged,Managed,在C#中,调用这个包装函数的最佳方法是什么(我在托管代码中尝试使用reference参数并创建指针,然后调用非托管代码) 例如: // c++/managed Uint32 someMethod(int &value); Uint32 Wrapper::someMethod(int &value) { int *valuePtr = &value; return unmanagedObj->someMethod(valuePtr); } // c

在C#中,调用这个包装函数的最佳方法是什么(我在托管代码中尝试使用reference参数并创建指针,然后调用非托管代码)

例如:

// 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++包装,但当我调用方法时 在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 ?!?!
谢谢你的提示


问候

您要查找的是
int%
,这是C++CLI引用的正确语法,称为:


被管理的C++被正式称为C++ CLI,所以我推迟了。它被忽略了!谢谢(我已经想知道reference=pointer;-)!
Uint32 Wrapper::someMethod(int %value)