slyys72 Temat założony przez niniejszego użytkownika |
WINAPI odczytwywanie wartosci parametrów » 2021-03-07 13:30:22 Hej, przebrnąłem kurs C++. Teraz zacząłem WINAPI i wyczytałem , że niemal wszystkie pozostałe typy, których nazwy biorą się od znaczenia w programach, są aliasami na typ DWORD, czyli 32-bitową liczbę całkowitą bez znaku. Rozumiem z tego że w przypadku np. HWND okno_glowne , pod okno_glowne kryje się liczba. Mam pytanie jak ja odczytać aby wyswietlić ja np. w STATIC . Próba przypisania do zmiennej DWORD kończy się błędem. DWORD liczba = okno_glowne;
Skoro to ten sam typ to dlaczego ? Tak sie tylko uczę i zastanawiam przy okazji. I jeszcze jedno pytanie z innej beczki? Jak przeszukiwać forum , bo nigdzie nie widzę możliwości wyszukiwanie np. słów kluczowych lub czegoś podobnego. Trzeba przeglądać temat po temacie ???? |
|
DejaVu |
» 2021-03-07 13:31:19 HWND != DWORD. |
|
pekfos |
» 2021-03-07 13:32:56 Teraz zacząłem WINAPI i wyczytałem , że niemal wszystkie pozostałe typy, których nazwy biorą się od znaczenia w programach, są aliasami na typ DWORD I gdzie to wyczytałeś? Jak przeszukiwać forum , bo nigdzie nie widzę możliwości wyszukiwanie np. słów kluczowych lub czegoś podobnego. Trzeba przeglądać temat po temacie ???? Google, lub dowolna inna wyszukiwarka. |
|
slyys72 Temat założony przez niniejszego użytkownika |
» 2021-03-07 13:35:33 https://xion.org.pl/files/texts/mgt/html/3_1.html
Dokładnie tu przeczytałem w kawałku o typie danych. |
|
pekfos |
» 2021-03-07 13:39:05 |
|
slyys72 Temat założony przez niniejszego użytkownika |
» 2021-03-07 13:49:46 Czyli kurs mówi nieprawdę ? A jeżeli jest to wskaźnik to pod wskazywanym adresem kryje się jakaś wartość . Jak ją odczytać , jest na to jakaś funkcja jak w przypadku odczytania wartości LPSTR plCmdLine przez GetCommandLine().
Próbuję rzutować na DWORD czy inny typ liczbowy ale to nie działa .
|
|
DejaVu |
» 2021-03-07 13:57:34 Ale po co chcesz wykonać jakąś operację? Jaki jest Twój cel? Bo nie ma sensu rzutować typu A na typ B, skoro nie będzie się dało i tak jego sensownie używać.
To tak jak byś w świecie rzeczywistym zaczął nazywać gąbkę samochodem i oczekiwał, że będzie dało się gąbką jeździć. |
|
pekfos |
» 2021-03-07 14:03:53 Czyli kurs mówi nieprawdę ? Może jest tylko nieaktualny, a może wchodzi w szczegóły w które nie powinien. Może oficjalnie HWND i np HMODULE się sprowadzają do PVOID, ale jak napiszesz coś takiego: #include <windows.h>
int main() { HWND h = NULL; HMODULE m = h; } a.cpp: In function 'int main()': a.cpp:6:14: error: cannot convert 'HWND' {aka 'HWND__*'} to 'HMODULE' {aka 'HINSTANCE__*'} in initialization 6 | HMODULE m = h; | ^ | | | HWND {aka HWND__*} To jak widać nie działa, bo żaden z tych typów nie jest zdefiniowany jako PVOID. https://docs.microsoft.com/en-us/windows/win32/winprog/strict-type-checkingTo jest feature mający na celu wykrywanie błędów wynikających z bezsensownego mieszania typów. A jeżeli jest to wskaźnik to pod wskazywanym adresem kryje się jakaś wartość . Jak ją odczytać , jest na to jakaś funkcja jak w przypadku odczytania wartości LPSTR plCmdLine przez GetCommandLine(). Może i jest, ale nie powinno Ciebie interesować. To są wewnętrzne sprawy Windowsa i nie będziesz mieć na to żadnej dokumentacji. Próbuję rzutować na DWORD czy inny typ liczbowy ale to nie działa. Szkoda prądu na pisanie takich rzeczy. Kod i treść błędu. |
|
« 1 » 2 |