Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

FindWindow

281
07 мая 2007 года
Fan][
279 / / 19.12.2003
Объясниет мне, пожалуйста, почему в этом коде
 
Код:
HWND hwnd;
  hwnd=FindWindow("SciCalc","Калькулятор");

я постоянно получаю ошибку: error C2664: 'FindWindowW' : cannot convert parameter 1 from 'const char [8]' to 'LPCWSTR'.
Вроде как всегда так делал...
3
07 мая 2007 года
Green
4.8K / / 20.01.2000
Потому, что проект у тебя настроен на использование юникодного чарсета, а использовать ты пытаешься мультибайтовый.
Путей решения четыре:
1) сконфигурировать проект на использование мультибайтового чарсета:
Project -> Properties -> General -> Character Set

2) использовать юникодные строковые литералы, т.е. добавить L перед строкой:
 
Код:
hwnd=FindWindow(L"SciCalc", L"Калькулятор");

3) использовать мультабайтовый вариант функции:
 
Код:
hwnd=FindWindowA("SciCalc", "Калькулятор");

4) ПРЕДПОЧТИТЕЛЬНЫЙ - в завсисмости от настроек проекта автоматически использовать мультибайтовый или юникодный чарсет строк, что делается использованием макроса TEXT или _T
 
Код:
hwnd=FindWindow(TEXT("SciCalc"), TEXT("Калькулятор"));
281
07 мая 2007 года
Fan][
279 / / 19.12.2003
Цитата: Green
Потому, что проект у тебя настроен на использование юникодного чарсета, а использовать ты пытаешься мультибайтовый.
[/code]



Огромное спасибо! Всё объяснено просто замечательно!

Только если можно по чарсетам детальнее на будущее.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог