Ошибка преобразования из "System::String ^" в "std::basic_string, std::allocator>"

Хочу взять данные из textbox и перенести в переменную fileName для использования в DataReading

    System::Void CursGraf::MyForm::открытьToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
    String^ fileName = stantxtToolStripMenuItem->Text;
    DataReading(d, _size, fileName);  <--- ошибку показывает здесь
}

В ошибке пишет (не существует подходящего конструктора для преобразования из "System::String ^" в "std::basic_string<char, std::char_traits, std::allocator>") Впервые с таким сталкиваюсь, просмотрел другие темы по этому вопросу и там ошибка появляется чуть по другому (ну или мне так кажется). Помогите написать нормально, желательно с объяснением что как и почему


Ответы (1 шт):

Автор решения: anton
#include <msclr\marshal_cppstd.h>
#include <string>

System::Void CursGraf::MyForm::openToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
    String^ fileName = stantxtToolStripMenuItem->Text;
    DataReading(d, _size, msclr::interop::marshal_as<std::string>(t));
}
→ Ссылка