Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

AfxMessageBox

332
26 мая 2006 года
Valiant
416 / / 27.09.2004
короче начал врубаться в VC++
взял Visual studio 2005
void CfirstDlg::OnBnClickedOk()
{
AfxMessageBox("True");
}
мне компилер выдаё такую сабжу:
d:\...\firstdlg.cpp(155) : error C2440: 'initializing' : cannot convert from 'const char [5]' to 'int'
There is no context in which this conversion is possible
=========================
что с ним делать ???
в книге написано что должно работать ...
8.4K
26 мая 2006 года
Dian
91 / / 18.02.2006
Похоже не тот MessageBox - этому первым параметром int нужен
713
27 мая 2006 года
Ap0k
360 / / 13.03.2006
Цитата:
Originally posted by Dian
Похоже не тот MessageBox - этому первым параметром int нужен


Этому MessageBox надо предопределёныые константы передавать...

273
27 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Сигнатура функции AfxMessageBox такая:
int AfxMessageBox(
LPCTSTR lpszText,
UINT nType = MB_OK,
UINT nIDHelp = 0
);
Попробуй вызвать её так:
AfxMessageBox("Text", MB_OK, 0);
Можно ещё заменить на CWnd::MessageBox:
int CWnd::MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK
);
Например: MessageBox("Text", "Error",
MB_ICONERROR | MB_OK);
Да, и не поймите меня неправильно: данный вопрос не относится к .NET Framework, поэтому подобные вопросы лучше задавать в форуме Microsoft Visual C++.
332
29 мая 2006 года
Valiant
416 / / 27.09.2004
всё-равно не работает
ничего не могу понять ...
273
29 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Цитата:
Originally posted by Valiant
всё-равно не работает
ничего не могу понять ...


Что не работает? Что компилер пишет? ничего не могу понять...

332
29 мая 2006 года
Valiant
416 / / 27.09.2004
если код такой:
int AfxMessageBox("lol");
то вот это:
error C2440: 'initializing' : cannot convert from 'const char [4]' to 'int'
There is no context in which this conversion is possible
если такой:
AfxMessageBox("Text", MB_OK, 0);
то:
error C2665: 'AfxMessageBox' : none of the 2 overloads could convert all the argument types
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(5025): could be 'int AfxMessageBox(LPCTSTR,UINT,UINT)'
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(5027): or 'int AfxMessageBox(UINT,UINT,UINT)'
while trying to match the argument list '(const char [5], long, int)'
Если такой:
int AfxMessageBox("Text", MB_OK, 0);
То:error C2078: too many initializers
273
29 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Действительно, AfxMessageBox имеет две сигнатуры:
 
Код:
int AfxMessageBox(
   LPCTSTR lpszText,
   UINT nType = MB_OK,
   UINT nIDHelp = 0
);
int AFXAPI AfxMessageBox(
   UINT nIDPrompt,
   UINT nType = MB_OK,
   UINT nIDHelp = (UINT) -1
);

Хотя странно, что он возмущается на несовместимость константы MB_OK и типа UINT. Ну сделай тогда так AfxMessageBox("Text", (UINT)MB_OK, 0) или так AfxMessageBox("Text", 0, 0);
332
29 мая 2006 года
Valiant
416 / / 27.09.2004
неа никак
если я ставлю перед AfxMessageBox
int то он говорит о том что не может конвертнуть
один тип данных в другой (const char в int)
хотя нигде нет именованной константы
приложение MFC -> Dialog Based
273
29 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Цитата:
Originally posted by Valiant
неа никак
если я ставлю перед AfxMessageBox
int то он говорит о том что не может конвертнуть
один тип данных в другой (const char в int)
хотя нигде нет именованной константы
приложение MFC -> Dialog Based


А зачем тебе указывать тип возвращаемого значения при вызове фунции,то граматическая уже ошибка. Просто напиши так:

 
Код:
...
CString myString = "Text";
AfxMessageBox(myString, (UINT)MB_OK, 0);
...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог