I am quite new to Windows programming. I am trying to retrieve the name of a window.
char NewName[128];
GetWindowText(hwnd, NewName, 128);
I need to use a char[] but it gives me the error of wrong type.
From what I read, LPWSTR is a kind of char*.
How can I use a char[]
with GetWindowText
?
Thanks a lot !
You are probably compiling a Unicode project, so you can either:
GetWindowTextA
), orwchar_t
instead of char
(LPWSTR
is a pointer to wchar_t
)For modern Windows programming (that means, after the year 2000 when Microsoft introduced the Layer for Unicode for Windows 9x), you're far better off using "Unicode", which in C++ in Windows means using wchar_t
.
That is, use wchar_t
instead of char
, and use std::wstring
instead of std::string
.
Remember to define UNICODE
before including <windows.h>
. It's also a good idea to define NOMINMAX
and STRICT
. Although nowadays the latter is defined by default.
When calling Windows APIs without specifying an explicit version by appending either A (ANSI) or W (wide char) you should always use TCHAR
. TCHAR
will map to the correct type depending on whether UNICODE
is #define
d or not.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With