- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用此代码获取 Windows 版本:
#define BUFSIZE 256
bool config::GetOS(LPTSTR OSv)
{
OSVERSIONINFOEX osve;
BOOL bOsVersionInfoEx;
ZeroMemory(&osve, sizeof(OSVERSIONINFOEX));
osve.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osve)) )
return false;
TCHAR buf[BUFSIZE];
StringCchPrintf(buf, BUFSIZE, TEXT("%u.%u.%u.%u"),
osve.dwPlatformId,
osve.dwMajorVersion,
osve.dwMinorVersion,
osve.dwBuildNumber);
StringCchCat(OSv, BUFSIZE, buf);
return true;
}
我正在测试它:
LPTSTR OSv= new TCHAR[BUFSIZE];
config c;
c.GetOS(OSv);
MessageBox(OSv, 0, 0);
在 msgbox 中,我得到类似 äì5.1.20(其中 5.1.20 = OSv)的内容,但前 2 或 3 个字符是一些我不知道它们何时出现的奇怪字符。更奇怪的是,如果我再次调用第二段它显示正常,它只在我第一次执行时显示奇怪的字符。
有人知道这里发生了什么吗?
最佳答案
你的问题是你应该使用 StringCchCopy而不是 StringCchCat。
StringCchCat 将搜索直到在字符串中找到 0,然后将结果追加到那里。由于您没有将输出字符串缓冲区初始化为 0,因此您不能假设它将以 0 开头。
关于c++ - LPTSTR 开头的奇怪字符? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2890588/
这个问题已经有答案了: 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
我是一名优秀的程序员,十分优秀!