Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

WINAPI odczytwywanie wartosci parametrów

Ostatnio zmodyfikowano 2021-03-07 14:23
Autor Wiadomość
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.
C/C++
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 ????
P-178241
DejaVu
» 2021-03-07 13:31:19
HWND != DWORD.
P-178242
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.
Frazy, które należy wpisać w wyszukiwarkę google:
P-178243
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.
P-178244
pekfos
» 2021-03-07 13:39:05
https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types
Oficjalna dokumentacja mówi że uchwyty to wskaźniki, nie liczby 32-bitowe.
P-178245
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 .
P-178246
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ć.
P-178247
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:
C/C++
#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-checking
To 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.
P-178248
« 1 » 2
  Strona 1 z 2 Następna strona