Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2024, 22:52   #1
druidvic
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 52
По умолчанию Печатается только первая буква в заголовке главного окна

Приветствую Уважаемые.
CodeBlock+GCC
Пример взял из книги В.А. Безруков WIN32 API ПРОГРАММИРОВАНИЕ
Хочу полностью переделать под UNICODE, где ошибся не пойму.
Если закоментировать 1-й блок операторов препроцессора
Код:
/*
#define UNICODE
#ifdef UNICODE
#define _UNICODE
#endif
*/
- печатается только первая буква в заголовке.
Если убрать /*...*/ (компилируется) - печатаются все символы.
Помогите найти проблему, пжл.
Весь код в файле. Сюда не влез
Вложения
Тип файла: zip app_main_window.zip (5.2 Кб, 5 просмотров)
druidvic вне форума Ответить с цитированием
Старый 22.06.2024, 13:00   #2
DeepFlake
Пользователь
 
Регистрация: 16.05.2024
Сообщений: 30
По умолчанию

А в чём проблема? Включаете Unicode - всё печатается, выключаете Unicode - конечно не все символы будут печататься, у вас же текст программы в Unicode.
Я бы посоветовал переменную szCurrentTime объявить как volatile
DeepFlake вне форума Ответить с цитированием
Старый 24.06.2024, 21:02   #3
druidvic
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 52
По умолчанию

Цитата:
Сообщение от DeepFlake Посмотреть сообщение
Я бы посоветовал переменную szCurrentTime объявить как volatile
Не получается - в
Код:
DrawTextW(hDc,
              szCurrentTime,
              -1,
              &rect,
              DT_SINGLELINE|DT_CENTER|DT_VCENTER);
              EndPaint(hWnd,&ps);
тогда типы не стыкуются.
191|error: invalid conversion from 'volatile WCHAR*' {aka 'volatile wchar_t*'} to 'LPWSTR' {aka 'wchar_t*'} [-fpermissive]|
или
191|error: invalid conversion from 'volatile WCHAR*' {aka 'volatile wchar_t*'} to 'LPCWSTR' {aka 'const wchar_t*'} [-fpermissive]|

Какой тогда тип объявлять для массива?
Код:
volatile WCHAR szCurrentTime[40];
druidvic вне форума Ответить с цитированием
Старый 26.06.2024, 15:28   #4
DeepFlake
Пользователь
 
Регистрация: 16.05.2024
Сообщений: 30
По умолчанию

тогда оставьте как есть, без volatile. Всё работает как надо ведь?
DeepFlake вне форума Ответить с цитированием
Старый 26.06.2024, 23:13   #5
druidvic
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 52
По умолчанию

DeepFlake, Спасибо что откликнулись. Да, работает.
Более-менее разобрался. Для GCC
Код:
#define UNICODE
указывать обязательно, если конечно код в UNICODE.
По умолчанию, даже если используются UNICODE операторы и сама кодировка исходника UNICODE, все равно он пытается использовать ANSI. Причем предупреждений (никаких) не выдает.

P.S. Без "танцев с бубном" не разберешься
druidvic вне форума Ответить с цитированием
Старый Вчера, 07:34   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,727
По умолчанию

Цитата:
Сообщение от druidvic Посмотреть сообщение
По умолчанию, даже если используются UNICODE операторы и сама кодировка исходника UNICODE, все равно он пытается использовать ANSI.
Только если вы используете макросы или TCHAR, GCC ни при чем, это раскрытие макросов при UNICODE.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование в заголовке главного окна не работает под Windows 7 в темах Aero vlad1 C++ Builder 0 06.04.2011 21:08
Группы символов, состоящие только из латинских букв, если первая буква группы входит в нее еще только оди Ela Помощь студентам 0 29.04.2010 13:41
закрыть все дочерни окна, кроме главного окна Worms Общие вопросы Delphi 2 03.12.2007 22:18
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13