当前位置: 代码迷 >> VC >> 一个关于“不能将参数 1 从“char [80]”转换为“System:Object ^”的有关问题
  详细解决方案

一个关于“不能将参数 1 从“char [80]”转换为“System:Object ^”的有关问题

热度:7855   发布时间:2013-02-25 00:00:00.0
一个关于“不能将参数 1 从“char [80]”转换为“System::Object ^”的问题
我在测试listbox控件时遇到了这样一个问题,希望各位能帮我解答一下:我在做CLR项目的windows窗体应用程序时,做了一个关于listbox控件的测试,在form1里面放了一个listbox控件和一个按钮,想通过单击按钮使某个txt文件里面的内容原样显示在listbox控件上,我在编辑按钮的单击事件时出现了一个错误: 

error C2664: “System::Windows::Forms::ListBox::ObjectCollection::Add”: 不能将参数 1 从“char [80]”转换为“System::Object ^

请问 应该怎么解决?

下面是按钮单击事件的代码:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
  {
  listBox1->Items->Clear();
  char s[80];
  ifstream file("d:\\justfortest.txt",ios::in);
  file.getline(s,80);
  while(!file.eof())
  {
  listBox1->Items->Add(s);
  }
  file.close();
  }

------解决方案--------------------------------------------------------
都用CLR了不用CLR的方法来读文件吗……

char[80]不是CLR类型,不从System.Object^派生,故不能转化为Object
可以用&s[0]作为参数,gcnew个System.String^出来,然后再添加进listBox
  相关解决方案