Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не пойму, что неправильно в 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   Вверх
Любитель
Дата 28.4.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Блин, сорри, не заметил. По цитате решил, что претензии к тому, что _tprintf и т. д. - не стандартная библиотека сей.


--------------------
PM MAIL ICQ Skype   Вверх
DigitSphinx
Дата 29.4.2007, 15:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кстати на счет UNICODE вопросик такой , почему если его поменять на Multi-Byte (в настройках) то манифест не крепится к EXE’шнику, т.е. форма становится не в стиле XP

Это сообщение отредактировал(а) DigitSphinx - 29.4.2007, 15:11


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
Greeen
Дата 29.4.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



DigitSphinx, а ты посмотри в stdafx.h
Код

#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

Вот тебе и ответ


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Любитель
Дата 29.4.2007, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Официально commctl32.dll версии 6 и больше не поддерживает юникод. В МСДН читаем, что в текущей версии в принципе будет раюотать и Анси, но в принципе сие не гарантируется.

ЗЫ Где-то я про это уже говорил.


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


 




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


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

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