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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2010, 15:31   #1
--=SaNitinDG=-
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 61
По умолчанию Microsoft Visual Studio 2008 и Unicode ошибка компиляции

Пишу вот такой вот код
Цитата:
#include <windows.h> //этот файл всегда включается
//в Windows-программу

//Это главная функция программы.
int WINAPI WinMain(HINSTANCE hInst, //пусть вас не смущает то,
HINSTANCE hPrevInst, //что здесь написано.
PSTR szCmdLine, //Мы разберем
int iCmdShow) //это позже.
{

//Вывести сообщение на экран.
MessageBox ( //функция вывода сообщения
NULL, //окно сообщения не имеет родителя
"Hello, Windows!", //текст сообщения
"Наша первая программа", //заголовок окна
MB_ICONINFORMATION); //иконка, которая будет
//выведена левее сообщения
return 0;
}
Во время компиляции появляется ошибка
Цитата:
------ Построение начато: проект: hellow2, Конфигурация: Release Win32 ------
Компиляция...
hellow1.cpp
.\hellow1.cpp(18) : error C2664: MessageBoxW: невозможно преобразовать параметр 2 из 'const char [16]' в 'LPCWSTR'
Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
В проекте у меня включено использовать Unicode как лечить?
Опыт не пропьешь если он есть=)))
--=SaNitinDG=- вне форума Ответить с цитированием
Старый 27.01.2010, 15:36   #2
--=SaNitinDG=-
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 61
По умолчанию

С MessageBoxW ошибка
Опыт не пропьешь если он есть=)))
--=SaNitinDG=- вне форума Ответить с цитированием
Старый 27.01.2010, 15:37   #3
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

Цитата:
Сообщение от --=SaNitinDG=- Посмотреть сообщение
В проекте у меня включено использовать Unicode как лечить?
Попробуй так:

Код:
MessageBox ( //функция вывода сообщения
NULL, //окно сообщения не имеет родителя
L("Hello, Windows!"), //текст сообщения
L("Наша первая программа"), //заголовок окна
MB_ICONINFORMATION);
Или используй макросы _T() или _TEXT():

Код:
MessageBox ( //функция вывода сообщения
NULL, //окно сообщения не имеет родителя
_T("Hello, Windows!"), //текст сообщения
_TEXT("Наша первая программа"), //заголовок окна
MB_ICONINFORMATION);
не забудь подключить "#include <tchar.h>"
Быть радикальным - значит понять вещь в её корне. К.Маркс

Последний раз редактировалось nazavrik; 27.01.2010 в 15:42.
nazavrik вне форума Ответить с цитированием
Старый 27.01.2010, 15:53   #4
--=SaNitinDG=-
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 61
По умолчанию

nazavrik
Спасибо, заработало это всегда так надо писать _T в проекте с Unicode
Опыт не пропьешь если он есть=)))
--=SaNitinDG=- вне форума Ответить с цитированием
Старый 27.01.2010, 16:04   #5
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
По умолчанию

Цитата:
Сообщение от --=SaNitinDG=- Посмотреть сообщение
nazavrik
Спасибо, заработало это всегда так надо писать _T в проекте с Unicode
Этот макрос удобен в том плане, что если у тебя проект использует Unicode-строки, то он преобразует "Hello, Windows!" в юникод-строку, а если ANSI, то оставляет как есть.

Подробнее можешь скачать и почитать Глава 2. Unicode
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума Ответить с цитированием
Старый 27.01.2010, 16:21   #6
--=SaNitinDG=-
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 61
По умолчанию

Цитата:
Этот макрос удобен в том плане, что если у тебя проект использует Unicode-строки, то он преобразует "Hello, Windows!" в юникод-строку, а если ANSI, то оставляет как есть.

Подробнее можешь скачать и почитать Глава 2. Unicode
Почитаю обязательно ==))

В данном случае мне можно было бы обойтись и без поддержки Unicode в проекте просто я заметил что если в проекте не выставить Unicode то файл манифеста который вставляется во время компиляции не влияет на стиль оформления кнопок как хотелось бы только ели выставлен Unicode то кнопки и само окно принимают стиль оформления покрасивее.
Опыт не пропьешь если он есть=)))
--=SaNitinDG=- вне форума Ответить с цитированием
Старый 27.01.2010, 17:13   #7
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

А у меня дает Error 1 error C3861: '_T': identifier not found
Error 2 error C3861: '_TEXT': identifier not found
Код:
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
  MessageBox (NULL, _T("Hello, Windows!"), _TEXT("Наша первая программа"), MB_ICONINFORMATION);
  return 0;
}
Cpluser вне форума Ответить с цитированием
Старый 27.01.2010, 17:20   #8
--=SaNitinDG=-
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 61
По умолчанию

Цитата:
Сообщение от Cpluser Посмотреть сообщение
А у меня дает Error 1 error C3861: '_T': identifier not found
Error 2 error C3861: '_TEXT': identifier not found
Код:
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
  MessageBox (NULL, _T("Hello, Windows!"), _TEXT("Наша первая программа"), MB_ICONINFORMATION);
  return 0;
}
У меня всё компилиться нормально, ты кажется забыл подключить #include <tchar.h>
Опыт не пропьешь если он есть=)))
--=SaNitinDG=- вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VISUAL STUDIO 2008 defaul language - как переключить в VISUAL STUDIO 2008 язык программирования, использ Эйнж Общие вопросы C/C++ 0 27.12.2009 20:39
Дополнения для Microsoft Visual Studio 2008 Levsha100 Свободное общение 4 07.09.2009 21:44
Microsoft Visual Studio C++ 2008 +Sergey+ Visual C++ 3 28.02.2009 22:08
Microsoft Visual Studio Team System 2008 merax Софт 10 07.06.2008 21:29