我想在列表框中的向量中显示元素。但是,我经常遇到错误:错误C2664:'System :: Windows :: Forms :: ListBox :: ObjectCollection :: Add':无法从'std :: basic_string< _Elem,_Traits,_Alloc>'转换参数1到'System :: Object ^'
我在c ++ / cli中使用windows窗体。 这是代码:
for (size_t z = 0; z < container.size(); z++){
listBox_name->Items->Add(container[z]);
}
答案 0 :(得分:0)
根据错误消息,您的向量是std::string
的向量。使用marshal_as
将std::string
转换为托管列表框可以接受的托管String^
。
for (size_t z = 0; z < container.size(); z++){
listBox_name->Items->Add(marshal_as<String^>(container[z]));
}
如果您发现自己经常这样做,请考虑将std::string
的向量更改为完全托管类型,例如List<String^>^
。