如何初始化String ^ *

时间:2015-06-10 11:22:24

标签: .net visual-c++ c++-cli

我正在使用VS2010,一个Visual C ++项目。

我已经声明我的var存储了一些要在控件中显示的选项:

System::String^ * operaciones;

现在,在我的void InitializeComponent(void)中,我正在尝试将以后要加载的选项加载到此var。我尝试了几种方法,甚至没有人可以编译。

我已经:

operaciones = {  "Umbralizado" ,
                 "ROI"  ,
                 "Contornos" ,
                 "DFT" ,
                 "R - V"};

为了填补String^ *,对我来说似乎没问题。但是,我得到了:

Error   2   error C2059: error de sintaxis : '{'    c:\...\Form1.h  98
Error   3   error C2143: error de sintaxis : falta ';' delante de '{'   c:\...\Form1.h  98

翻译消息:

Syntax error: '{'
A ';' is missing before '{'

如果我评论初始化,我的程序编译得很好,所以不是因为我之前错过了{;

我查找了C2059C2143错误,但我仍然无法找出我做错了什么。我认为这就像“看不到森林的树木”,做起来也不难。

编辑:我已将其更改为托管阵列,但我仍然遇到相同的错误。我已经清理然后再用VS建立,但没有新的事情发生:

enter image description here

1 个答案:

答案 0 :(得分:1)

您无法做到这一点,将托管对象存储在非托管阵列中是违法的。或者使用非托管指针引用它们。垃圾收集器永远无法正确找回对象,必须是托管数组。编译器不会产生合适的错误消息来帮助您发现这个基本事实。

正确的语法是:

   array<String^>^ operations = { "foo", "bar", "baz" };