2011-04-13 2 views
1

MSDN에서 기본 Windows 프로그래밍 가이드를 끝내고 모듈 3에서 D2D1Circle 샘플을 시도했습니다. 발생한 문제는 VC++ 2008에서 발생했습니다. "CreateWindowExA": 매개 변수 2를 'PCWSTR'에서 'LPCSTR'로 변환 할 수 없습니다. "MSDN에서 초급 C++ Windows D2D1Circle 샘플 문제

그래서 샘플 코드 rar를 다운로드 한 후 코드를 입력하는 동안 약간의 오류가 발생하여 열었습니다. 똑같은 오류가 발생했습니다. 어떻게 해결할 수 있을지에 대한 아이디어가 있으면 작동 할 것입니다. 또한, x64 비트 머신에서 프로그래밍한다는 사실은 왜 작동하지 않는 것과 관련이 있습니까? 나는 포인터가 기계에 의존하는 다른 크기의 값을 가지고 있다는 것을 알고 있으며 호출되는 두 매개 변수는 포인터이다.

Update @ Jollymorphic : 처음 몇 모듈에서 MSDN 자습서는 유니 코드가 ascii를 포함하고 중국어, 일본어 등 다른 모든 언어도 지원하므로 ascii를 계속 사용할 이유가 없다고 말합니다. 귀하의 솔루션을 구현하면 내 프로그램이 ascii 만 지원하므로 동아시아 언어에 대한 지원을 허용하지 않습니다.

답변

4

PCWSTR는 와이드 (16 비트) 문자에 대한 포인터입니다. LPCSTR은 일반 (8 비트) 문자에 대한 포인터입니다. 프로젝트는 UNICODE 문자 집합을 기반으로 코드를 생성하도록 설정되어 있습니다. Visual Studio에서 프로젝트의 속성을 열고 "일반"페이지로 이동하면 "문자 집합"속성이 나타납니다. 현재 "유니 코드 문자 집합 사용"으로 설정되어 있으면 "다중 바이트 문자 집합 사용"으로 변경할 수 있으며 문자열 리터럴은 8 비트 문자열로 생성됩니다.