我正在使用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 '{'
如果我评论初始化,我的程序编译得很好,所以不是因为我之前错过了{
或;
。
我查找了C2059和C2143错误,但我仍然无法找出我做错了什么。我认为这就像“看不到森林的树木”,做起来也不难。
编辑:我已将其更改为托管阵列,但我仍然遇到相同的错误。我已经清理然后再用VS建立,但没有新的事情发生:
答案 0 :(得分:1)
您无法做到这一点,将托管对象存储在非托管阵列中是违法的。或者使用非托管指针引用它们。垃圾收集器永远无法正确找回对象,必须是托管数组。编译器不会产生合适的错误消息来帮助您发现这个基本事实。
正确的语法是:
array<String^>^ operations = { "foo", "bar", "baz" };