![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Politexnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.3.2008 Где: Ереван, Армения Репутация: нет Всего: нет |
Здрасьте!
Перешел с Visual C++ 6.0 на Visual Studio 2008. В 6.0 WinAPI функция SetConsoleTitle из windows.h работала ПРЕВОСХОДНО. Так что такой код как
работал без ошибок. Но в Visual Studio 2008 это все не работает. Выдает ошибку, ругаеется нецензурными словами, типа error C2664: 'SetConsoleTitleW' : cannot convert parameter 1 from 'const char [28]' to 'LPCWSTR' Но штука в том, что если отконвертировать старый проект в новый, то эта функция работает. Помогите пожалуйста разобраться. Заранее спасибо. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
Здается мне что вся соль в юникоде
![]() Добавлено через 4 минуты и 19 секунд
|
|||
|
||||
Andrey44 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
Все проекты в 2008 студии идут в юникоде(в смысле по-умолчанию, но можно снять птичку
![]()
или так:
Это сообщение отредактировал(а) Andrey44 - 30.7.2008, 07:49 -------------------- ????? ??, ??????? ?????. ![]() |
||||
|
|||||
Politexnik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.3.2008 Где: Ереван, Армения Репутация: нет Всего: нет |
Большое спасибо!!!
Все ОК!!! Но что меняет буква L или _T спереди. Кодировку??? И еще один маленький вопросик. Что такое LPCWSTR и чем отличается от const char??? |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
юникод строка и анси строка.
Добавлено через 3 минуты и 35 секунд Обрати внимание на мой пример - функции можно использовать также в зависимости от вида строки - если в анси то функция заканчивается на A, если в юникоде то на W. В общем виде без окончания - будет использоваться то какая кодировка по умолчанию. |
|||
|
||||
Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 2 Всего: 26 |
LPCWSTR - это указатель на константную юникодную строку, вот и все отличия от LPCSTR тое-же const char[]
-------------------- ????? ??, ??????? ?????. ![]() |
|||
|
||||
Igoreck |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 28.9.2007 Репутация: нет Всего: нет |
а можно написать
??? у меня так то же работает хотя есть интересный момент - когда вводишь название функции, то предлагается только вариант SetConsoleTitle а когда смотришь ее варианты перегрузки то предлагается или SetConsoleTitleA или SetConsoleTitleW |
|||
|
||||
WhKitten |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 24.11.2010 Репутация: нет Всего: нет |
В свойствах проекта Configuration Properties / General / Character set установить "Use Multi-Byte character set".
Вообще SetConsoleTitle это макрос, который вызывает SetConsoleTitleA или SetConsoleTitleW. При этом функции для Unicode работают по времени также, как ANSI или даже быстрее - так что вызывать SetConsoleTitleA не имеет смысла. Чтобы в независимости от настроек проекта код компилировался при передаче макросу строки должны быть преобразованы к типу _TCHAR*. Это делает макрос _T или _TEXT. В зависимости от настроек проекта _TCHAR интерпретируется как char или wchar_t. Поэтому любой код, который вызывает макросы, а не функции (который имеют A или W на конце) без использования макросов _T или _TEXT можно считать неверным. О чём и говорит ошибка. http://msdn.microsoft.com/ru-ru/library/c426s321.aspx Это сообщение отредактировал(а) WhKitten - 29.11.2010, 16:56 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |