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

Ошибка С2664 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
vlad_ltd
3 / 3 / 0
Регистрация: 30.04.2011
Сообщений: 51
09.06.2011, 23:54     Ошибка С2664 #1
error C2664: MessageBoxW: невозможно преобразовать параметр 2 из 'const char [34]' в 'LPCWSTR'
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции

Уже не первый раз ее встречаю. Появляется после запуска примеров из книг/с сайтов.
Данные коды компилились на MVS2005 и MVS2006 (по крайней мере иак написано, лично не пробовал).
Я использую MVS2008

C++
1
2
3
4
5
if( !RegisterClass( &wc ) )              // Пытаемся зарегистрировать класс окна
    {
        MessageBox( NULL, "Failed To Register The Window Class.", "ERROR", MB_OK | MB_ICONEXCLAMATION );
        return false;                // Выход и возвращение функцией значения false
    }
Пологаю, это из области WinAPI. Ругается на второй и третий параметр. Как это вылечить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2011, 23:54     Ошибка С2664
Посмотрите здесь:

Ошибка при компиляции. Где ошибка? (Работа с классом) C++
Ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске программы возникает ошибка C++
C++/CLI WinForms Ошибка с графикой в приложении Windows form (ошибка не в коде!)
Выскакивает ошибка Stack around the voriable 'text' was corrupted. Подскажите пожалуйста в чём ошибка C++
C++ Укажите где ошибка (ошибка во время выполнения программы)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
09.06.2011, 23:59     Ошибка С2664 #2
C
1
MessageBox( NULL, L"Failed To Register The Window Class.", L"ERROR", MB_OK | MB_ICONEXCLAMATION );
vlad_ltd
3 / 3 / 0
Регистрация: 30.04.2011
Сообщений: 51
10.06.2011, 00:03  [ТС]     Ошибка С2664 #3
Спасибо огромное!!!
Если не затруднит, можно объяснить что значит "L" ?
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
10.06.2011, 00:07     Ошибка С2664 #4
L значит строка широких символов, тип wchar_t
пример:
wchar_t w[]=L"qwerty";
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.06.2011, 00:09     Ошибка С2664 #5
Как вариант можно отключить поддержку юникода в проекте.
Yandex
Объявления
10.06.2011, 00:09     Ошибка С2664
Ответ Создать тему
Опции темы

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