Новичок C ++ Windows D2D1 Образец круга из MSDN Проблема - PullRequest
1 голос
/ 13 апреля 2011

Итак, я просто просматривал базовое руководство по программированию в Windows на MSDN и пытался выполнить пример D2D1Circle в Модуле 3. Проблема, с которой я столкнулся, была ошибка, которую выдавал мой VC ++ 2008. «CreateWindowExA: невозможно преобразовать параметр 2 из« PCWSTR »в« LPCSTR »

Итак, полагая, что я допустил небольшую ошибку при наборе кода, я скачал образец кода rar и открыл его, и он вывел точно такую ​​же ошибку. Любые идеи о том, как я могу это исправить, чтобы это сработало. Кроме того, имеет ли отношение тот факт, что я программирую на 64-битной машине, почему это не сработает? Я знаю, что указатели несут значения разных размеров в зависимости от машины, и оба вызываемых параметра являются указателями.

Обновление @ Jollymorphic: в первых нескольких модулях в учебнике MSDN говорилось, что на самом деле нет никаких оснований продолжать использовать ascii, поскольку юникод охватывает ascii, а также поддерживает все другие языки, такие как китайский, японский и т. Д. Реализация вашего решения приводит к тому, что моя программа поддерживает только ascii и впоследствии не разрешает поддержку восточноазиатских языков?

1 Ответ

4 голосов
/ 13 апреля 2011

PCWSTR - указатель на широкие (16-битные) символы.LPCSTR - это указатель на обычные (8-битные) символы.Ваш проект, вероятно, настроен на генерацию кода на основе набора символов UNICODE.Если вы откроете свойства для своего проекта в Visual Studio, а затем перейдете на страницу «Общие», вы увидите свойство «Набор символов».Если в настоящее время он установлен на «Использовать набор символов Unicode», то вы можете изменить его на «Использовать многобайтовый набор символов», и ваши строковые литералы будут сгенерированы как 8-битные строки символов.

...