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

Рейтинг: 0Ответов: 1Опубликовано: 25.02.2023

Хочу взять данные из 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Принят
#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));
}