[c++] Problem z GetWindowText
Ostatnio zmodyfikowano 2016-04-08 13:19
Serafin Temat założony przez niniejszego użytkownika |
[c++] Problem z GetWindowText » 2016-04-06 12:56:41 Witam!
Mam mały problem. Korzystam z książki AI Techniques For Game Programming. Została ona wydana chyba w 2001 roku. Wiem, że do dnia dzisiejszego dużo się pozmieniało i m.in. stąd mój problem. Korzystam z Microsoft Visual Studio 2013.
Na poczatku natknalem sie na problem z dwoma zmiennymi globalnymi char* g_szApplicationName = "Bouncing Balls - with Dialog"; char* g_szWindowClassName = "MyWindowClass";
zmienne char nie byly respektowane przez niektore funkcje, wiec je zmienilem na
LPCWSTR g_szApplicationName = TEXT ("Bouncing Balls - With Dialog"); LPCWSTR g_szWindowClassName = TEXT ("MyWindowClass");
i problem rozwiazalem.
teraz napotkalem problem z char buffer[5];
zmienna buffer jest wykorzystywana w funkcji GetWindowText ktora ma postac:
GetWindowText (hwndRadius, buffer, 5);
wyskakuje mi blad:
argument of type "char *" is incompatible with parameter of type "LPWSTR"
i szczerze mowiac nie wiem jak ten problem rozwiazac, czy jest inna funkcja zamienna dla GetWindowText albo moze zmienna buffer powinna byc innego typu? Z gory dziekuje za pomoc.
|
|
carlosmay |
» 2016-04-06 14:26:25 LPSTR buffer =( LPSTR ) GlobalAlloc( GPTR, 5 ); GetWindowTextA( hwndRadius, buffer, 5 );
Nie wiem jak, ale dopatrzyłem się tam 'A' LPTSTR buffer =( LPTSTR ) GlobalAlloc( GPTR, 5 * 2 ); GetWindowText( hwndRadius, buffer, 5 ); |
|
j23 |
» 2016-04-06 18:46:21 LPCWSTR g_szApplicationName = TEXT ("Bouncing Balls - With Dialog"); LPCWSTR g_szWindowClassName = TEXT ("MyWindowClass");
i problem rozwiazalem. |
Jeśli korzystasz z makra TEXT, zamiast LPCWSTR powinieneś użyć LPCTSTR. LPTSTR buffer =( LPTSTR ) GlobalAlloc( GPTR, 5 * 2 ); |
Jeśli T jest nazwie typu, to: LPTSTR buffer =( LPTSTR ) GlobalAlloc( GPTR, 5 * sizeof( TCHAR ) ); @ Serafin, problem można rozwiązać na dwa sposoby. Albo przełączając w opcjach projektu Character Set na multibyte, albo - tak jak pokazał @ carlosmay - dodając na koniec do (prawie) każdej nazwy funkcji WinAPI literę A. |
|
Serafin Temat założony przez niniejszego użytkownika |
» 2016-04-08 13:19:37 Dziekuje za odpowiedzi, jak znajde troche czasu to zobacze czy poskutkowalo.
Trochę to długo trwało, ale znalazłem czas na zabawę z C++. Jeszcze raz dziękuję. Działa. Dobrze, że są jeszcze ludzie, którzy chcą pomóc. Pozdrawiam :) |
|
« 1 » |