Консультация № 109318
14.11.2007, 03:25
0.00 руб.
0 3 3
Ночи доброй, товарищи эксперты. Боремся с Юникодом :(
Почему в одной программе при создании главного окна

HWND hWnd = CreateWindow(lpzClass, TEXT("Chipik Window"),
WS_OVERLAPPEDWINDOW | WS_VISIBLE, x, y, 300, 300, NULL, NULL,
hInstance, NULL);

компилятор не находит ошибок, а при создании кнопки чуть ниже
CreateWindow("button", TEXT("Press me"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
10, 10, 80, 30, hWnd, (HMENU)10000, hInstance, NULL);
ругается что "cannot convert parameter 2 from ‘const char [7]‘ to ‘LPCWSTR‘"

Обсуждение

Неизвестный
14.11.2007, 06:49
общий
это ответ
Здравствуйте, Chip!

А всё те же грабли. Вместо

CreateWindow("button", TEXT("Press me"), ...

напишите

CreateWindow(TEXT("button"), TEXT("Press me"), ...

а лучше отмените UNICODE в параметрах проекта.
Неизвестный
14.11.2007, 09:12
общий
это ответ
Здравствуйте, Chip!
Посмотрите как определяется CreateWindow для unicode. Это макро. Тогда будет понятно, почему отнесена ко второму параметру а не к первому.
Неизвестный
14.11.2007, 12:14
общий
это ответ
Здравствуйте, Chip!

Странно, что компилятор ругается на 2ю переменную. Но тут проблема в первой - необходимо поместить строковую константу "button" в макрос TEXT().
Форма ответа