Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Глюки с Visual Studio 2005


Автор: alexXx 29.12.2005, 20:00
Короче вот в чем дело:
Пытался откомпилить пустое окно на 2005-ой студии, причем взятое из примера!!! На 2003-её студии все было зашеюись, а тут
в этом месте 1) winclass.lpszClassName = "WINCLASS1";

и в hwnd = CreateWindowEx(NULL,
вот тут->2) "WINCLASS1",
и соотв. тут->3) "Window 1 Based on WINCLASS1",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
0,0,
400,400,
NULL,
NULL,
hinstance,
NULL)
... выдает ошибку, мол 1 )error C2440: '=' : cannot convert from 'const char [10]' to 'LPCWSTR'
2) error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [10]' to 'LPCWSTR'
3) -//-

Я уже замучился, помоги пожалуйста!!!! Может у каго была такая же хрень. Версия студии вроде полная (релизная)! Брал у друга тоже самое(((((

Автор: Earnest 30.12.2005, 11:26
Что такое LPCWSTR смотрел? Это "широкая" строка - Юникод то есть.

Скорее всего, у тебя в новом проекте установлен UNICODE. Либо поменяй UNICODE на MultiByte, либо все строковые константы сделай широкими.

А еще лучше - заиметь привычку всегда заворачивать строки в макрос _T(), а также пользоваться макро-типами LPTSTR, LPСTSTR вместо char*, const char*. Т.е.:
Код

LPCTSTR psText = _T("WINCLASS1");  

Тогда код будет компилироваться и при Unocode, и при Multibyte.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)