아래 예제와 같이 rapidjson 라이브러리를 Microsoft ATL CString 형식으로 사용하려고합니다.rapidjson 및 ATL CString 사용
#include "stdafx.h"
#include "rapidjson\document.h"
using namespace rapidjson;
typedef GenericDocument<UTF16<> > WDocument;
int main()
{
WDocument document;
CString hello = _T("Hello");
document.SetObject();
document.AddMember(_T("Hello"), hello, document.GetAllocator());
return 0;
}
이 컴파일러 오류와 함께 실패
'rapidjson :: GenericValue :: GenericValue (rapidjson :: GenericValue & &)'rapidjson '에'CString을 '에서 인수 1을 변환 할 수 없습니다 :: 'rapidjson document.h'를 입력하면 rapidjson이 필요로하는 형식과 CString 사이의 변환이 필요하다는 것을 의미합니다. 1020
rapidjson은 내부적으로 wchar_t를 UTF16 버전의 인코딩으로 사용한다는 것을 알고 있지만, CString을 wchar_t (또는 wchar_t 배열)로 변환하는 방법을 rapidjson이 문자열을 사용할 수있는 방법으로 확신하지 못합니다. _T 매크로로 정의 된 문자열을 사용합니다.
문자열 유형 here 사이에서 변환 할 때 msdn 자원을 살펴 보았습니다. 그러나이 방법은 rapidjson에서 사용할 수없는 wchar_t 배열의 첫 번째 멤버에 대한 포인터를 반환하는 방법을 제공합니다.
당신이 유니 코드 빌드를 구축, 또는 다른 ANSI 빌드에서'CStringW'와'L "안녕하세요"'(사용 확인 ,'CString'은'wchar_t'가 아니라'char's를 저장합니다). 'const wchar_t *'(CStringW는 적절한 변환 연산자를 제공)로 명시 적으로 형변환해야 할 수도 있습니다. –
이것을 제안 해 주셔서 감사합니다. wchar_t *로 캐스팅하는 아이디어는 지금해야 할 일을 파악하는 데 도움이되었습니다. –