Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не пойму, что неправильно в MessageBox 
:(
    Опции темы
susanin
Дата 20.4.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 7



попробовал сделать MessageBox, но при компиляции выдались ошибки... написал вот так..
Код

void CnewDlg::OnBnClickedCancel()
{
    MessageBox("Первое сообщение","message",0);
    // TODO: Add your control notification handler code here
    OnCancel();
}

ошибка выдается следующая:
 error C2664: 'CWnd::MessageBoxW' : cannot convert parameter 1 from 'const char [17]' to 'LPCTSTR'
в чем ошибка то????

Это сообщение отредактировал(а) susanin - 20.4.2007, 16:12
PM MAIL   Вверх
scooper
Дата 20.4.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 5.5.2005

Репутация: нет
Всего: нет



Может на русский язык ругается! попробуй убрать
PM MAIL   Вверх
dizzy1984
Дата 20.4.2007, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: 10
Всего: 25



Цитата(susanin @  20.4.2007,  16:09 Найти цитируемый пост)
error C2664: 'CWnd::MessageBoxW
 У тебя юникод стоит в настройках, убери его.

Либо предваряй все строковые константы символом L

Это сообщение отредактировал(а) dizzy1984 - 20.4.2007, 19:48
PM MAIL   Вверх
susanin
Дата 20.4.2007, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 7



dizzy1984 , а как юникод в настройках убрать?
PM MAIL   Вверх
zkv
Дата 22.4.2007, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



Цитата(susanin @  20.4.2007,  23:29 Найти цитируемый пост)
dizzy1984 , а как юникод в настройках убрать? 

поиском по форуму
PM MAIL   Вверх
Dude03
Дата 22.4.2007, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.4.2006

Репутация: нет
Всего: 6



Вроде так
Код

#ifdef UNICODE
#undef UNICODE
#endif

PM MAIL   Вверх
Earnest
Дата 23.4.2007, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Dude03, нет конечно, не путай новичка! Это придется делать в каждом файле.
susanin, Юникод убирается в свойствах проекта, 100 раз обсуждалось, ищи по форуму.


--------------------
...
PM   Вверх
Rapalex
Дата 23.4.2007, 12:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 6
Всего: 8



А я бы не советовал отключать уникод, мы уже в 21-м веке!!!!!!!!!!!
Нутолько так написать:
Код

MessageBox(_T("Первое сообщение"), _T("message"),0);

В результате этот макрас сам поставил L если надо а не надо от него вреда не будет, и будет легко собтрать то уникод то не укод (мульти байт) приложения.


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
Любитель
Дата 23.4.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 7
Всего: 92



Earnest, надо какую нибудь тему по юникоду или прикрепить, или в шапку добавить smile А то это вечный вопрос по VC++ 2005.


--------------------
PM MAIL ICQ Skype   Вверх
zkv
Дата 23.4.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



Цитата(Rapalex @  23.4.2007,  12:16 Найти цитируемый пост)
Нутолько так написать:

согласен, заметил что в МСДН'овских сэмплах используется макрос TEXT() и определен он вроде также как и _T(), кто-нибудь знает в чем разница между ними?
PM MAIL   Вверх
Любитель
Дата 23.4.2007, 13:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 7
Всего: 92



zkv, отличие очень тонкое. У MS есть два макроса для юникода/неюникода:
1. UNCIDOE - PSDK (Platform SDK - Windows SDK) для WinAPI функций.
2. _UNICODE- в CRT (C Runtime) для всяких _tprintf, _tcsclen и пр.

Для первого в winnt.h определяется макрос TEXT, именно он рекомендуется к использованию (так как фнукциями WinAPI пользуются чаще, хотя правда вряд ли кто-то будет определять юникод для одного и запрещать для другого  smile ). Для последнего - в tchar.h есть _T и _TEXT.

Вот так. Когда в пропертях проекта ставим юникод - в команд-лайн компилера добавляется /DUNICODE и /D_UNICODE. Потому (дополнительно) явные дефайны не рулят - надо знать, что делаем и для чего.


--------------------
PM MAIL ICQ Skype   Вверх
Rapalex
Дата 24.4.2007, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 6
Всего: 8



Любитель, спасибо, не знал, ещё думал в чём же разница.

Только напрашивается вопрос, что такое CRT (C Runtime)? В смысле что мне с него идёт.


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
Tectoder
Дата 25.4.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 202
Регистрация: 13.3.2007

Репутация: нет
Всего: 8



Цитата(Любитель @  23.4.2007,  13:00 Найти цитируемый пост)
UNICODE- в CRT (C Runtime) для всяких _tprintf, _tcsclen и пр.
CRT это набор библиотек с функциями языка C.

Это сообщение отредактировал(а) Tectoder - 25.4.2007, 23:39
PM   Вверх
Любитель
Дата 28.4.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 7
Всего: 92



Tectoder, и?

_tprintf, _tcslen - это мс-шное расширение CRT. Находятся они в msvcrxx.dll (MS Visual C Runtime). Точнее не они, а printf, wprintf и т. д. А это просто макросы, раскрываемые в printf/wprintf, etc. согласно #ifdef UNICODE.


--------------------
PM MAIL ICQ Skype   Вверх
zkv
Дата 28.4.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



Цитата(Любитель @  28.4.2007,  16:40 Найти цитируемый пост)
Tectoder, и?

видимо это был ответ на вопрос:
Цитата(Rapalex @  24.4.2007,  11:16 Найти цитируемый пост)
Любитель, спасибо, не знал, ещё думал в чём же разница.
Только напрашивается вопрос, что такое CRT (C Runtime)? 

smile
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1132 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.