Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
yava
3 / 3 / 0
Регистрация: 13.07.2009
Сообщений: 83
#1

макрос <L> не работает - C++

22.07.2009, 23:43. Просмотров 1616. Ответов 7
Метки нет (Все метки)

Подскажите, как исправить эту ошибку?
Error 1 error C2440: 'initializing' : cannot convert from 'const wchar_t [13]' to 'LPCSTR' d:\master\createdevice\main.cpp 151

(Иными словами почему-то макрос <L> не работает.)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт С++
 Аватар для odip
7151 / 3291 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
22.07.2009, 23:47     макрос <L> не работает #2
Полный текст программы где ?
Vourhey
Почетный модератор
6471 / 2246 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.07.2009, 23:54     макрос <L> не работает #3
wchar_t [13] должен работать безо всякого приведения его к LPCSTR
yava
3 / 3 / 0
Регистрация: 13.07.2009
Сообщений: 83
23.07.2009, 00:04  [ТС]     макрос <L> не работает #4
C++
1
2
3
4
 
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, 
                      GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
                      L"D3D Tutorial", NULL };
C++
1
2
3
HWND hWnd = CreateWindow( L"D3D Tutorial", L"Create DirectX-Device", 
                              WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,
                              NULL, NULL, wc.hInstance, NULL );
C++
1
    UnregisterClass( L"D3D Tutorial", wc.hInstance );
Вот кусоки где ругается.
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
23.07.2009, 00:30     макрос <L> не работает #5
Иными словами почему-то макрос <L> не работает.
Он и не может "работать", потому что это не макрос.
вот _T() - макрос.
yava
3 / 3 / 0
Регистрация: 13.07.2009
Сообщений: 83
23.07.2009, 10:35  [ТС]     макрос <L> не работает #6
А можно ли в этом то коде правку сделать, просто в другом проекте такие же строчки ошибок не вызывают. Я поэтому и понять не могу!
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
23.07.2009, 10:53     макрос <L> не работает #7
никогда не работай непосредственно с char или wchar_t
у ms есть специальные обёртки (кстати, макрос CreateWindow - одна из них)
юзай TCHAR и _T(...)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2009, 12:52     макрос <L> не работает
Еще ссылки по теме:

Макрос-класс? C++
Не работает макрос C++
C++ Не работает макрос
C++ Макрос MyAssert
Макрос DPrint C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
yava
3 / 3 / 0
Регистрация: 13.07.2009
Сообщений: 83
24.07.2009, 12:52  [ТС]     макрос <L> не работает #8
C++
1
2
3
DCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, 
                      GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
                      "D3D Tutorial", NULL };

C++
1
2
3
HWND hWnd = CreateWindow( "D3D Tutorial", "Create DirectX-Device", 
                              WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,
                              NULL, NULL, wc.hInstance, NULL );



C++
1
UnregisterClass( "D3D Tutorial", wc.hInstance );
А такой код заработал! Всем спасибо!
Yandex
Объявления
24.07.2009, 12:52     макрос <L> не работает
Ответ Создать тему
Опции темы

Текущее время: 03:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru