Преобразовать из "System::String ^" в "char *"

Bogradan

Visual Studio 2010 C++. Нужно путь к файлу "openFileDialog1->FileName" запихать в textBox1. Пишет ошибку: "невозможно преобразовать параметр 1 из "System::String ^" в "char *" - это x где strcpy. Как преобразовать в обычный char?
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
 if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
 
     {
         System::IO::StreamReader ^ sr = gcnew
            System::IO::StreamReader(openFileDialog1->FileName);
         MessageBox::Show("Файл выбран",sr->*********());
 
         char x, a;
 
         a=Convert::ToChar(textBox1->Text);
 
         
         strcpy( openFileDialog1->FileName, x);
         
         a=x;
 
         sr->Close();
      }
             }
5 ответов

Bogradan

Нужно путь к файлу "openFileDialog1->FileName" запихать в textBox1.
А зачем какие-то странные манипуляции с преобразованием строки в символ, если можно просто:
textBox1->Text = openFileDialog1->FileName;


Bogradan

Да, действительно. Но теперь мне пишет: error C2440: =: невозможно преобразовать "wchar_t" в "char [50]" Как это преобразовать?
char x; char a[50]; //!!!!!! Я увеличил длину переменной "a", потому-что он жаловался на недостаток размера.
 
         a=Convert::ToChar(textBox1->Text);
 
         
         //strcpy( openFileDialog1->FileName, x);
         textBox1->Text = openFileDialog1->FileName;


Bogradan

Bogradan, Если пишете в C++/CLI, то можно пользоваться классами .NET:
System::String^ a = textBox1->Text;


Bogradan

Закрывайте тему. Всё получилось .Спасибо большое Даценд-ту, очень сильно помог.