我正在尝试用托管 C++ 编写应用程序,但我不知道如何声明字符串数组。
String^ linet[];
抛出一个错误
'System::String ^' : a native array cannot contain this managed type
所以我想有一种不同的方法可以对托管数据类型执行此操作。它到底是什么?
最佳答案
您真的是指托管 C++ 吗?不是 C++/CLI?
假设您实际使用的是 C++/CLI(由于您发布的错误消息),有两种方法可以做到这一点:
array<String^>^ managedArray = gcnew array<String^>(10);
将创建一个托管数组,即与 C# 中的 string[] 类型相同。
gcroot<String^>[] unmanagedArray;
将创建一个非托管的 C++ 数组(我从来没有真正用数组尝试过这个 - 它适用于 STL 容器,所以它也应该在这里工作)。
关于c++ - 托管 C++ 中的字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995434/