如何将pin_ptr放入通用列表?

时间:2010-02-15 02:53:49

标签: list managed-c++ pin-ptr

我有一个托管C ++方法,它将String ^

列表作为参数

该方法需要使用指向String ^

中内存的指针填充非托管结构 使用PtrToStringChars

提取WCHAR *非常简单

但是我不知道在设计时分配的pin_ptr的数量

我想将固定的ptr添加到列表中,类似于下面的内容 列表与LT; pin_ptr< const wchar_t>>

这样做会产生 错误C3225:'T'的泛型类型参数不能是'cli :: pin_ptr',它必须是值类型或引用句柄

有没有办法做到这一点?在托管C ++中

1 个答案:

答案 0 :(得分:1)

嗯,你有一些问题。第一个pin_ptr不是托管类型,因此您无法将其放入List中。您可以使用C ++向量,但不包括:

  

固定指针只能在堆栈上声明为非静态局部变量。

来自http://msdn.microsoft.com/en-us/library/1dz8byfh%28VS.80%29.aspx

相反,您可能必须直接使用GCHandlesGCHandleType固定。