GetWindowText mit char []

8

Ich bin ziemlich neu in der Windows-Programmierung. Ich versuche, den Namen eines Fensters abzurufen.

%Vor%

Ich muss ein char [] verwenden, aber es gibt mir den Fehler eines falschen Typs.
Von dem, was ich gelesen habe, ist LPWSTR eine Art Char *.

Wie kann ich char[] mit GetWindowText verwenden?

Vielen Dank!

    
MaT 19.12.2012, 09:23
quelle

3 Antworten

11

Sie erstellen wahrscheinlich ein Unicode-Projekt. Sie können also entweder:

  • Rufen Sie explizit die ANSI-Version der Funktion ( GetWindowTextA ) oder
  • auf
  • Verwenden Sie wchar_t anstelle von char ( LPWSTR ist ein Zeiger auf wchar_t )
Jonathan Potter 19.12.2012, 09:25
quelle
1

Für moderne Windows-Programmierung (das heißt, nach dem Jahr 2000, als Microsoft den Layer für Unicode für Windows 9x einführte), ist es viel besser, "Unicode" in C ++ in Windows zu verwenden bedeutet mit wchar_t .

Verwenden Sie also wchar_t anstelle von char und verwenden Sie std::wstring anstelle von std::string .

Denken Sie daran, UNICODE vor dem Einfügen von <windows.h> zu definieren. Es ist auch eine gute Idee, NOMINMAX und STRICT zu definieren. Obwohl letzteres standardmäßig definiert ist.

    
Cheers and hth. - Alf 19.12.2012 09:41
quelle
1

Wenn Sie Windows-APIs aufrufen, ohne eine explizite Version anzugeben, indem Sie entweder A (ANSI) oder W (wide char) anhängen, sollten Sie immer TCHAR verwenden. TCHAR wird dem richtigen Typ zugeordnet, abhängig davon, ob UNICODE #define d ist oder nicht.

    
IInspectable 19.12.2012 21:57
quelle

Tags und Links