如何在VC ++中创建String ^的可变长度数组/向量

时间:2009-10-01 02:04:15

标签: arrays visual-c++

我正在尝试创建System :: String ^的向量,我尝试使用直接向上的STL向量,但是vector<String ^> my_vector给出了C4439错误(函数需要具有__clrcall调用约定。

所以,我将__clrcall添加到我的函数原型中,它仍然抱怨我声明vector<String ^>

我也正在阅读VC ++库中的MSDN页面,但我还没找到我需要的东西,那里的任何人都知道我需要什么?感谢。

1 个答案:

答案 0 :(得分:1)

您正在尝试将托管对象(String)置于非托管对象的控制之下,但托管堆可以在内存中移动内容,这对于向量来说是个问题。基本上,您不能将托管对象粘贴到STL容器中,尽管可以在托管C ++中使用固定(我没有尝试过)并从中获取实际的char *。

然而,.NET提供了类似的类,例如List<T>泛型,它将为您做同样的事情,但是在托管代码中。如果您使用的是较旧版本的.NET,请查看ArrayListStackQueue等内容。