- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我尝试使用以下代码获取 LPTSTR 变量和 CONST CHAR 变量的大小,但无法获取正确的大小。
我应该得到 20,但我得到的是 const char* 变量的 0 和 LPTSTR 变量的 4。
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
我需要获取值的大小,然后使用以下函数将其作为二进制数据 (REG_BINARY
) 插入到 Windows 注册表中:
lRes = RegSetValueEx(hMykey, "Scancode Map", 0, REG_BINARY, (LPBYTE) var2, sizeof(var2));
最佳答案
var1
的类型是const char*
,var2
的大小是LPTSTR
(即你的案例是 char*
的别名)。 sizeof var1
等价于 sizeof (const char*)
,而不是它指向的字符数组的大小。在您的平台上,sizeof (char*)
是 4 个字节。
你可以这样做:
const char var1[] = { 0x00, 0x00, ..., 0x00 };
然后 sizeof var1
将等同于 sizeof (const char[20])
,这就是您想要的。
关于c - 获取包含十六进制值的 LPTSTR 或 CHAR* 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9968754/
这个问题已经有答案了: How do I concatenate const/literal strings in C? (17 个回答) 已关闭 7 年前。 我想向 LPTSTR 添加一个字符串。
我正在为应用程序创建 DLL。应用程序调用 DLL 并接收长度为 8 到 50 的字符串。 我遇到的问题是仅显示应用程序收到的任何消息的第一个字母。 下面是 GetMethodVersion 函数。
我需要创建一个变量以在 CreateProcess 中使用: CreateProcess(z7Cmdline, z7Arg, NULL, NULL, FALSE, NULL, NULL, NULL,
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我试图理解为什么在执行这段代码期间会发生段错误(SIGSEGV)。该错误在测试 while 指令中指定的条件时发生,但不是在第一次迭代时发生,而是在第二次迭代时发生。 LPTSTR arrayStr[
我正在使用此代码获取 Windows 版本: #define BUFSIZE 256 bool config::GetOS(LPTSTR OSv) { OSVERSIONINFOEX osve;
我正在尝试复制 LPTSTR 并将该字符串作为成员变量存储在对象中。但是我复制 LPTSTR 的尝试似乎失败了,当我去访问/打印复制的 LPTSTR 的值时,我遇到了程序崩溃。 是否可以复制 LPTS
我需要一个提供 LPTSTR 和枚举值的函数,根据该值构造一个字符串并将其放入 LPTSTR。 我编写了以下函数,它使用由枚举值索引的名称数组: bool GetWinClassName(const
我一直在使用一个从过滤器驱动程序接收消息的应用程序。驱动程序运行良好,但我的内存管理有问题,可能是 LPTSTRs user & domain。 在调试时,我收到有关堆损坏的消息,它们通常指向两个 f
有人能说我用对了吗? LPTSTR nameProc = ""; ... GetProcessImageFileName( hProcess, nameProc, 50 ); printf("name
我正在 Visual Studio 2013 上编写 C++ dll。我的 dll 应该从 ini 文件中读取参数。因此,我为此创建了一个函数 (ReadConnectionSettings())。我
这个问题在这里已经有了答案: Convert lptstr to char* (8 个答案) Convert LPTSTR to string or char * to be written to
有没有等价于 LPTSTR 的字符串?我知道字符串和 wstring。有 tstring 吗? 最佳答案 你可以定义一个: typedef std::basic_string mystring; ..
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Convert lptstr to char* 我需要将 LPTSTR p 转换为 CHAR ch[]。我是
嗨,谁能帮我将 LPTSTR 转换为 QString 最佳答案 您将在 the docs 中看到Qstring 提供了静态函数来转换 ascii 和 Unicode 字符串: QString from
我需要将 LPTSTR 转换为 LPCWSTR。我需要这个,因为我从 GetDlgItemText 获取 LPTSTR,我将把它提供给 ExtTextOut,它接受 LPCWSTR. 编辑:在从 Ge
我有以下代码来枚举给定 .exe 中的所有资源文件 BOOL CALLBACK EnumResNameProc(HMODULE hModule, LPCTSTR lpszType, LPTSTR lp
我需要将注册表中的值存储在 map 中。我有这样的代码: map mymap; for (i = 0, retCode = ERROR_SUCCESS; i(i, val));
函数参数为LPCTSTR&。 我必须将 LPTSTR 变量作为 LPCTSTR& 传递。 如何将LPTSTR转换为LPCTSTR&。 提前致谢。 最佳答案 根据我以前的 C++ 经验,您正试图通过引用
因此函数 GetUserName() 的输出将用户名作为 LPTSTR。我需要将其转换为 LPCSTR,因为我希望用户名成为 ftp 目录的名称。 TCHAR id [UNLEN+1]; DWORD
我是一名优秀的程序员,十分优秀!