private: System::Void btn_entrar_Click(System::Object^ sender, System::EventArgs^ e) {
string btn_texto = txt_login->Text->ToString();
MessageBox(NULL, "Hello!", btn_texto.c_str(), MB_OK | MB_ICONEXCLAMATION);
}
Я обычно создаю приложение Windows Form в Visual C ++ Studio 2008 Professional, я добавил функцию щелчка (двойным щелчком по кнопке в режиме разработки), поэтому я написал код внутри сгенерированной им функции.
сгенерировано 2 ошибки:
Ошибка 1:
ошибка C2440: «инициализация»: невозможно преобразовать из «System :: String ^»
в 'std :: basic_string <_Elem, _Traits, _Ax>'
Ошибка 2:
ошибка C2872: «MessageBox»: неоднозначный символ 1> может быть
'C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ include \ winuser.h (7374)
: int MessageBox (HWND, LPCTSTR, LPCTSTR, UINT) '1> или
«C: \ Windows \ microsoft.net \ Framework \ v2.0.50727 \ System.Windows.Forms.dll
: Система :: Windows :: Forms :: MessageBox '
Я создаю в C ++ на Visual Studio 2008 Professional под Windows 7 и проект под .NET Framework 3.5
Кто-то знает, как мне это исправить? Я посмотрел все это, но не смог найти решение.
Я надеюсь, что дал достаточно информации.
Заранее спасибо.
@ edit Пример, заданный Коди Грей
System::String btn_texto = txt_login->Text->ToString();
System::Windows::Forms::MessageBox(NULL, "Hello!", "HI", MB_OK | MB_ICONEXCLAMATION);
Ошибки получены
ошибка C3149: «System :: String»: здесь нельзя использовать этот тип без
ошибка верхнего уровня '^' C2661:
'System :: Windows :: Forms :: MessageBox :: MessageBox': нет перегруженных
функция принимает 4 аргумента
Итак, я решил первую ошибку, добавив ^ после System :: String
быть таким:
System :: String ^ btn_texto = txt_login-> Text-> ToString ();
но вторая ошибка не была исправлена, и, кстати, как бы я добавил содержимое "btn_texto" в функцию MessageBox? Спасибо!