我想要使用下面的代码获取LPTSTR变量和CONST CHAR变量的大小,但我无法获得正确的大小。获取包含十六进制值的LPTSTR或CHAR *的大小
我应该得到20,但我得到0为const char *变量和4为LPTSTR变量。
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
我需要的价值的大小,将其插入到Windows注册表使用下面的函数的二进制数据(REG_BINARY
):
lRes = RegSetValueEx(hMykey, "Scancode Map", 0, REG_BINARY, (LPBYTE) var2, sizeof(var2));
第一次如何得到0?看起来不正确。 – cnicutar 2012-04-01 22:13:50
对不起,我得到4 sizeof(var1) – hardyRocks 2012-04-01 22:22:05