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

Не работает messagebox

14.03.2010, 13:36. Показов 40528. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru