GetWindowText with char[]
GetWindowText with char[]
我对Windows编程很陌生。我正在尝试检索窗口的名称。
char NewName[128];
GetWindowText(hwnd, NewName, 128);
我需要使用 char[],但它给了我错误类型的错误。
从我读到的内容来看,LPWSTR是一种字符*。
如何将char[]
与GetWindowText
一起使用?
多谢!
您可能正在编译一个 Unicode 项目,因此您可以:
- 显式调用函数的 ANSI 版本 (
GetWindowTextA
),或 - 使用
wchar_t
而不是char
(LPWSTR
是指向wchar_t
的指针)
对于现代Windows编程(这意味着,在2000年Microsoft推出Windows 9x的Unicode层之后),使用"Unicode"要好得多,在Windows中C++这意味着使用wchar_t
。
也就是说,使用wchar_t
而不是char
,使用std::wstring
而不是std::string
。
请记住在包含<windows.h>
之前定义UNICODE
。定义NOMINMAX
和STRICT
也是一个好主意。尽管如今后者是默认定义的。
在未通过附加 A (ANSI) 或 W(宽字符)指定显式版本的情况下调用 Windows API 时,应始终使用 TCHAR
。 TCHAR
将根据UNICODE
是否#define
d映射到正确的类型。