带char []的GetWindowText

时间:2012-12-19 09:23:46

标签: c++ visual-studio-2010 winapi

我对Windows编程很陌生。我正在尝试检索窗口的名称。

char NewName[128];
GetWindowText(hwnd, NewName, 128);

我需要使用char [],但它给出了错误类型的错误 从我读到的,LPWSTR是一种char *。

如何将char[]GetWindowText一起使用?

非常感谢!

3 个答案:

答案 0 :(得分:11)

您可能正在编译Unicode项目,因此您可以:

  • 明确调用函数的ANSI版本(GetWindowTextA)或
  • 使用wchar_t代替charLPWSTRwchar_t的指针)

答案 1 :(得分:1)

对于现代Windows编程(这意味着,在2000年微软为Windows 9x引入了Layer for Unicode之后),你最好使用“Unicode”,这在Windows的C ++中表示使用 wchar_t

即,使用wchar_t代替char,并使用std::wstring代替std::string

在包含UNICODE之前,请务必定义<windows.h>。定义NOMINMAXSTRICT也是一个好主意。虽然现在后者是默认定义的。

答案 2 :(得分:1)

通过附加A(ANSI)或W(宽字符)来调用Windows API而不指定显式版本时,应始终使用TCHARTCHAR会映射到正确的类型,具体取决于UNICODE是否为#define d。