我有一个托管C ++方法,它将String ^
列表作为参数该方法需要使用指向String ^
中内存的指针填充非托管结构 使用PtrToStringChars 提取WCHAR *非常简单但是我不知道在设计时分配的pin_ptr的数量
我想将固定的ptr添加到列表中,类似于下面的内容 列表与LT; pin_ptr< const wchar_t>>
这样做会产生 错误C3225:'T'的泛型类型参数不能是'cli :: pin_ptr',它必须是值类型或引用句柄
有没有办法做到这一点?在托管C ++中
答案 0 :(得分:1)
嗯,你有一些问题。第一个pin_ptr不是托管类型,因此您无法将其放入List中。您可以使用C ++向量,但不包括:
固定指针只能在堆栈上声明为非静态局部变量。
来自http://msdn.microsoft.com/en-us/library/1dz8byfh%28VS.80%29.aspx。
相反,您可能必须直接使用GCHandles和GCHandleType固定。