Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/197: Рейтинг темы: голосов - 197, средняя оценка - 4.76
1 / 1 / 0
Регистрация: 14.03.2010
Сообщений: 25

Не работает messagebox

14.03.2010, 13:36. Показов 40468. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. у меня в visual studio c++ не хочет работать messagebox. Я прописал:
C++
1
MessageBox (NULL,L"Форма закрывается",L"Закрытие",MB_OK | MB_ICONWARNING);
компилятор выдает ошибку:
1>c:\visual studio 2008\projects\лаба 9\лаба 9\Form1.h(472) : error C2872: MessageBox: неоднозначный символ
1> может быть 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winuser.h(737 4) : int MessageBox(HWND,LPCTSTR,LPCTSTR,UINT)'
1> или 'c:\windows\microsoft.net\framework\v2.0 .50727\system.windows.forms.dll : System::Windows::Forms::MessageBox'
1>c:\visual studio 2008\projects\лаба 9\лаба 9\Form1.h(472) : error C2872: MessageBox: неоднозначный символ
1> может быть 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winuser.h(737 4) : int MessageBox(HWND,LPCTSTR,LPCTSTR,UINT)'
1> или 'c:\windows\microsoft.net\framework\v2.0 .50727\system.windows.forms.dll : System::Windows::Forms::MessageBox'
Скажите пжст, что делать
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.03.2010, 13:36
Ответы с готовыми решениями:

Не работает MessageBox!
Код и сама ошибка показаны на скриншоте. В чём проблема и как её решить?

Не работает MessageBox
При компиляции выдает такую ошибку: 1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\thth\thth\Form1.h(86) :...

Не работает MessageBox
Не работает след строчка MessageBox("Test"); Выдает ошибку error C2664: 'MessageBoxW' : cannot convert parameter 1 from 'char '...

14
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
14.03.2010, 13:51
L - попробуй убрать.
0
1 / 1 / 0
Регистрация: 14.03.2010
Сообщений: 25
14.03.2010, 14:14  [ТС]
без L ко всему вышеперечисленному добавляется еще одна ошибка:
1>c:\visual studio 2008\projects\лаба 9\лаба 9\Form1.h(471) : error C2664: MessageBox: невозможно преобразовать параметр 2 из 'const char [18]' в 'LPCTSTR'
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
0
21 / 17 / 0
Регистрация: 05.03.2010
Сообщений: 59
14.03.2010, 14:36
Ты используешь WinForms или WinAPI вызов? Если WinForms то будит что-то вроде
C++
1
MessageBox::Show( "Форма закрывается", "Закрытие", MessageBoxButtons::OK, MessageBoxIcon::Warning );
3
1 / 1 / 0
Регистрация: 14.03.2010
Сообщений: 25
14.03.2010, 18:49  [ТС]
не знаю, что такое WinForms или WinAPI вызов, но твой вариант работает))спасибо)
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
14.03.2010, 20:02
Цитата Сообщение от BreatheInMyVoid Посмотреть сообщение
Если WinForms
Это не WinForms, а просто вызов класса MessageBox из пространства имен System.Windows.Forms, он будет работать даже в консольном приложении приподключении нужных ссылок
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
26.03.2012, 23:20
Цитата Сообщение от BreatheInMyVoid Посмотреть сообщение
Ты используешь WinForms или WinAPI вызов? Если WinForms то будит что-то вроде
C++
1
MessageBox::Show( "Форма закрывается", "Закрытие", MessageBoxButtons::OK, MessageBoxIcon::Warning );
хочу написать так:
C++
1
MessageBox::Show( "Ошибка", const_cast< char* >( ex.what() ) , MessageBoxButtons::OK, MessageBoxIcon::Error );
ошибка такая:
error C2665: System::Windows::Forms::MessageBox::Show : ни одна из 21 перегрузок не может преобразовать все типы аргументов
1> forms.dll: может быть "System::Windows::Forms:ialogResul t System::Windows::Forms::MessageBox::Show (System::String ^,System::String ^,System::Windows::Forms::MessageBoxButt ons,System::Windows::Forms::MessageBoxIc on)"
1> forms.dll: или "System::Windows::Forms:ialogResul t System::Windows::Forms::MessageBox::Show (System::Windows::Forms::IWin32Window ^,System::String ^,System::String ^,System::Windows::Forms::MessageBoxButt ons)"
И так тоже не работает( та же ошибка ):
C++
1
MessageBox::Show( "Ошибка", System::String( const_cast< char* >( ex.what() ) ) , MessageBoxButtons::OK, MessageBoxIcon::Error );
Что делать?
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
27.03.2012, 06:57
Цитата Сообщение от Chelioss Посмотреть сообщение
Что делать?
Попробуйте:
C++
1
MessageBox::Show( "Ошибка", ex.what() , MessageBoxButtons::OK, MessageBoxIcon::Error );
Или
C++
1
MessageBox::Show( System::String("Ошибка"), System::String(ex.what()) , MessageBoxButtons::OK, MessageBoxIcon::Error );
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
27.03.2012, 20:08
Евгений М.
Не работает. Та же ошибка.
На всякий случай, не работает под windows forms(C++/CLI) в VS 2010.
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
27.03.2012, 22:11
C++
1
MessageBox::Show(gcnew System::String("Ошибка"), gcnew System::String(ex.what()), ..)
А вот так:
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
28.03.2012, 01:29
Работает. А так утечки памяти не будет?
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
28.03.2012, 06:44
Цитата Сообщение от Chelioss Посмотреть сообщение
А так утечки памяти не будет?
Это же можно контролировать.
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
29.03.2012, 15:57
Цитата Сообщение от Евгений М. Посмотреть сообщение
Это же можно контролировать.
Т.е. надо удалить delete'om?
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
29.03.2012, 19:49
Цитата Сообщение от Chelioss Посмотреть сообщение
Т.е. надо удалить delete'om?
Да...
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
29.03.2012, 21:46
А есть какой-то другой способ сообщить об ошибки?
Это ведь бред:
C++
1
2
3
4
5
6
7
catch( std::exception& ex ) {
                 System::String ^err_name = gcnew System::String( "Ошибка" );
                 System::String ^err_descr = gcnew System::String( ex.what() );
                 MessageBox::Show( err_descr, err_name, MessageBoxButtons::OK, MessageBoxIcon::Error );
                 delete err_name;
                 delete err_descr;
             }
Ведь gcnew может выкинуть исключение внутри catch.

Добавлено через 3 минуты
Цитата Сообщение от Евгений М. Посмотреть сообщение
Да...
Я просто подумал, что тут может быть так же как и в C# работать сборщик мусора.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.03.2012, 21:46
Помогаю со студенческими работами здесь

messagebox не работает
if (MessageBox(Handle,&quot;Вы уверены?&quot;,&quot;Подтверждение&quot;,MB_YESNO) == IDYES) { ShowMessage(&quot;Hello...

Не работает MessageBox() в C++ Builder XE
Привет всем, не могу понять почему не работает MessageBox()! вот код каторый я пробую: if(Application-&gt;MessageBox(&quot;Save to...

Не работает SetFocus после MessageBox
Пишу на C++ Builder 2010. Проблема в том, что после вызова функции MessageBox, курсор должен вставать на поле sEdit, а он почему-то этого...

Windows forms, Не работает MessageBox.
Создал три формы: в первой вопрос в label1: Как вас завут?. Пишем в textBox1 ,И жмем на button1; во второй форме вопрос : Сколько вам...

Странно работает Win32::GUI::MessageBox
Добрый день Народ есть в модуле на перле такая строка my $otvet = Win32::GUI::MessageBox($HANDLE,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru