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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2011, 00:23   #11
likstalkera
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 44
По умолчанию

1>------ Построение начато: проект: Game, Конфигурация: Debug Win32 ------
1> game.cpp
1>c:\с++\game\game\game.cpp(33): error C2440: =: невозможно преобразовать "const char [13]" в "LPCWSTR"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\с++\game\game\game.cpp(39): error C2664: CreateWindowExW: невозможно преобразовать параметр 2 из "const char [13]" в "LPCWSTR"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
likstalkera вне форума Ответить с цитированием
Старый 21.02.2011, 00:27   #12
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Project - Properties - General - (справа) Character Set - Use Multi-Byte Character Set

или используем юникод версии функций

Код:
CreateWindowEx(NULL,L"WINDOWSCLASS",L"game",WS_OVERLAPPEDWINDOW|WS_VISIBLE,0,0, 700,400,NULL,NULL,hinstance,NULL)
counter вне форума Ответить с цитированием
Старый 21.02.2011, 00:37   #13
likstalkera
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 44
По умолчанию

И еще
////////////////////////////////////////////////////////
1>c:\с++\game\game\game.cpp(33): error C2440: =: невозможно преобразовать "const char [13]" в "LPCWSTR"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
////////////////////////////////////////////////////////
windowsclass.lpszClassName = "WINDOWSCLASS";
likstalkera вне форума Ответить с цитированием
Старый 21.02.2011, 01:00   #14
likstalkera
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 44
По умолчанию

Ни как.
В этой строке windowsclass.lpszClassName = "WINDOWSCLASS"; равно подчеркивает?
likstalkera вне форума Ответить с цитированием
Старый 21.02.2011, 01:16   #15
likstalkera
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 44
По умолчанию

В DevCpp ошибки нет, а в visual 2010 есть ошибки. Почему это так - язык один, а ошибки разные в одном коде в разных прогах...
likstalkera вне форума Ответить с цитированием
Старый 21.02.2011, 10:32   #16
genrix
просто
Форумчанин
 
Аватар для genrix
 
Регистрация: 17.02.2011
Сообщений: 405
По умолчанию

Пиши в Dev-C++................... У меня точно такая же проблема, только наоборот: В Dev-C++пишет ошибки..............
Не стоит читать свои переписки двухлетней давности...
genrix вне форума Ответить с цитированием
Старый 21.02.2011, 17:57   #17
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

в Visual Studio 2008/2010 по умолчанию в настройках проекта стоит Unicode, поэтому нужно использовать юникод-строки, которые начинаются с символа L, что соответствует типу данных wchar_t, если вы не хотите использовать юникод, делайте так как я написал выше и у вас проблем не будет...
counter вне форума Ответить с цитированием
Старый 21.02.2011, 18:48   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

лучше использовать юникод в АПИ.
http://programmersforum.ru/showthrea...hlight=Unicode
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.02.2011, 22:30   #19
likstalkera
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 44
По умолчанию

counter, я написал как вы и сказали, но ошибка не исчезла.

А нельзя ли отключить юникод?

Код:
В этой строке windowsclass.lpszClassName = "WINDOWSCLASS"; равно подчеркивает?

1>c:\с++\game\game\game.cpp(33): error C2440: =: невозможно преобразовать "const char [13]" в "LPCWSTR"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции

Последний раз редактировалось likstalkera; 21.02.2011 в 22:36.
likstalkera вне форума Ответить с цитированием
Старый 21.02.2011, 22:42   #20
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

а кто ж эту строку в юникоде сделает?

Код:
windowsclass.lpszClassName = L"WINDOWSCLASS";
Цитата:
Сообщение от likstalkera Посмотреть сообщение
А нельзя ли отключить юникод?
можно, первая строка

но, как уже написал П. Феникса, лучше все же использовать юникод

Последний раз редактировалось counter; 21.02.2011 в 22:44.
counter вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выскакивает окно при запуске операционки: Windows не удаётся найти 'svchost.exe'..... СисТемникс Windows 2 15.08.2010 09:23
Как найти окно Мой компьютер в Windows Vista? dolphin705 Общие вопросы Delphi 1 19.04.2010 01:27
окно ввода в приложении под windows: как правильно считывать числа?? avroraoff Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 19.12.2009 19:29
как обновить окно windows RamireZ Win Api 1 28.03.2009 16:18
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28