이것은 AIR과 C++ 간의 첫 번째 기본 확장이며 C++ 프로그래밍에서도 마찬가지입니다. 따라서 유형 변환에 대한 도움말을 어디서 찾을 지 잘 모릅니다.safe uint8_t를 wchar_t로 변환합니다.
AIR 쪽에서는 uint8_t (FRE ... 함수 호출)에서 문자열을 수신합니다. 레지스트리에 쓰기 위해이 문자열을 사용할 필요가 있습니다. 여기서 wchar_t가 필요합니다. 단순히 형 변환을하거나 같은 크기의 새로운 wchar [] 배열을 만들고 문자를 복사 할 수 있는지 또는 MultiByteToWideChar()와 같은 someting을 사용하여 UTF-8 문자를 wchar_t로 변환해야하는지 잘 모르겠습니다. 이 경우 올바른 출력 배열 크기에 대해서는 확실하지 않습니다. 당신은`표준 : stringstream`에 바이트 배열을 기록 할 수있는 경우
...
FREObject retObj = NULL;
uint32_t strLength = 0;
const uint8_t *path8 = NULL;
// this is what I get from actionscript call
FREResult status = FREGetObjectAsUTF8(argv[ARG_PATH], &strLength, &path8);
if ((status != FRE_OK) || (strLength <= 0) || (path8 == NULL)) \t return retObj;
LONG hStatus;
HKEY hKey;
wchar_t *path;
// ??? how to copy uint_t into wchar_t
hStatus = RegOpenKeyEx(HKEY_CURRENT_USER, path, 0, KEY_ALL_ACCESS, &hKey);
...
원더, 표준 : basic_ios :: imbue''와 UTF8하기 이제 stringstream의 로케일을 설정하고, 'wchar'로 다시 읽습니다. 작동한다면 잔인하게 사용하기 쉽습니다. – user4581301