#include "경로/jsoncpp-src-0.5.0/include/json/json.h"
//#pragma comment (lib, "경로/json_Name.lib")
char szLocale[] = "KOREA\0";
char pPID[] = "ASDF1234\0";
char pMessage[] = "Message Test 3\0";
char pTitle[] = "Message Test 3\0";
//!< 대입.
Json::Value jsonPayloads; //!< 배열 생성.
jsonPayloads["locale"] = szLocale;
jsonPayloads["alert"] = "%s";
jsonPayloads["title"] = "%s";
Json::Value jsonDataMessage;
jsonDataMessage["defaultLocale"] = szLocale; //!< 변수 대입
jsonDataMessage["fcmPayloads"].append( jsonPayloads ); //!< 배열 추가.
jsonDataMessage["apnsPayloads"].append( jsonPayloads );
jsonDataMessage["targets"].append( pPID );
string jsonStrA = jsonDataMessage.toStyledString();
//////////////////////////////////////////// Multi -> Unicode START //
//!< 변환에 필요한 버퍼 크기를 알아낸다. nConvCharCount는 변환 후 문자 개수(NULL 포함)
long nConvCharCount = MultiByteToWideChar( CP_ACP
, 0
, jsonStrA.c_str()
, -1 //!< pszAnsiStr는 NULL로끝나는 문자열
, NULL //!< Query Length
, 0 ); //!< Query Length
if (nConvCharCount <= 0)
return false;
//!< 변환에 필요한 버퍼 준비
//wchar_t wbuf[] = new wchar_t[nConvCharCount];
wchar_t pwBuf[1028] = { 0, };
//!< 실재 변환
long nRet = MultiByteToWideChar( CP_ACP
, 0
, jsonStrA.c_str()
, -1
, pwBuf
, nConvCharCount );
if (nRet != nConvCharCount)
return false;
//////////////////////////////////////////// Multi -> Unicode END //
//!< 아웃 변수에 할당
wstring jsonStrW;
jsonStrW.assign( pwBuf );
wchar_t wszBody[1024]{ 0, };
wsprintf( wszBody, jsonStrW.c_str(), pMessage, pTitle, pMessage, pTitle );
//////////////////////////////////////////// Unicode -> Multi(UTF8) START //
//!< 변환에 필요한 버퍼 크기를 알아낸다. nConvCharCount는 변환 후 문자 개수(널포함)
nConvCharCount = WideCharToMultiByte( CP_UTF8
, 0
, wszBody
, -1
, NULL
, 0
, NULL
, NULL );
if (nConvCharCount <= 0)
return false;
//!< 버퍼 준비
//wchar_t buf[] = new wchar_t[nConvCharCount];
char pBuf[1024] = { 0, };
//!< 실재 변환
long nRet = WideCharToMultiByte( CP_UTF8
, 0
, wszBody
, -1
, pBuf
, nConvCharCount
, NULL
, NULL ); //!< UTF8 변환은 이거 사용시 ERROR
if (nRet <= 0)
return false;
//////////////////////////////////////////// Unicode -> Multi(UTF8) END //
//!< 아웃 변수에 할당
httpBody.assign( pBuf );
'[ Programing ] > C++' 카테고리의 다른 글
MySQL C++ API / ODBC (0) | 2021.11.09 |
---|---|
모두의 코드 (0) | 2021.10.28 |
스레드 관련 정리. (0) | 2021.09.28 |
C++ JSON 파싱 (0) | 2021.09.17 |
C++ Json Param ParsingBind (0) | 2021.02.03 |