2
這是我在AIR和C++之間的第一個本地擴展,也是在C++編程中,所以我不確定在哪裏尋找類型轉換的幫助。安全地將uint8_t轉換爲wchar_t
從AIR端我收到一個字符串在uint8_t(FRE ...函數調用)。我需要使用此字符串寫入註冊表,其中wchar_t是預期的。 我不確定是否可以簡單地進行類型轉換,或者創建具有相同大小和複製字符的新wchar []數組,或者是否需要使用像MultiByteToWideChar()將UTF-8字符轉換爲wchar_t。我不確定在這種情況下輸出數組的大小是否正確。如果你能字節數組寫入到`的std :: 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);
...
奇蹟,設置字符串流的區域用'的std :: basic_ios :: imbue'爲utf8,和讀回爲'wchar'。如果它有效,它會非常簡單易用。 – user4581301