以下のコードを使用してLPTSTR変数およびCONST CHAR変数のサイズを取得しようとしていますが、適切なサイズを取得できません。16進値を含むLPTSTRまたはCHAR *のサイズの取得
私は20を得るはずですが、const char *変数で0、LPTSTR変数で4が得られます。
私は次の関数を使用してバイナリデータとしてWindowsレジストリに挿入する値のサイズ(REG_BINARY
)を取得する必要があります
const char *var1 = "\x00\x00\x00\x00"
"\x00\x00\x00\x00"
"\x02\x00\x00\x00"
"\x5B\xE0\x5B\xE0"
"\x00\x00\x00\x00";
LPTSTR var2 = "\x00\x00\x00\x00"
"\x00\x00\x00\x00"
"\x02\x00\x00\x00"
"\x5B\xE0\x5B\xE0"
"\x00\x00\x00\x00";
printf("%d", sizeof(var1)); // this outputs 0
printf("%d", sizeof(var2)); // this outputs 4
:
lRes = RegSetValueEx(hMykey, "Scancode Map", 0, REG_BINARY, (LPBYTE) var2, sizeof(var2));
どのように最初のものが0になっていますか?正しいとは思わない。 – cnicutar
申し訳ありませんが私はsizeof(var1)のために4を得ています – hardyRocks