Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 01:52

  • Please register to post and access all features, it's quick, easy and FREE!


Frage zu Handle und HWND

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2017
Posts: 9
Received Thanks: 0
Frage zu Handle und HWND

Ich lerne momentan C++ und wollte Fragen, ob ich die beiden Klassen richtig verstanden habe. Also kann man sagen, dass beide Klassen Pointer sind, nur dass Handle als Zeiger für jegliche Objekte verwendet werden kann und HWND nur für Fenster?



James15225 is offline  
Old 07/31/2018, 12:16   #2
 
elite*gold: 0
Join Date: Apr 2008
Posts: 498
Received Thanks: 617
HANDLE und HWND sind WinAPI-Typen und beides keine Klassen. Das liegt daran das die WinAPI eine C-Bibliothek ist.

Was du richtig verstanden hast:
Beides sind vom Typ her Pointer, welcher (und ob ein) Datentyp aber wirklich dahinter steht weiß nur Microsoft.
HANDLE stellt vom Sinn her eine Art "Basis-Typ" dar, daher ist die Aussage "HANDLE ist für jedgliche Objekte, HWND für Fenster" schon richtig.

HWND ist identisch zum Typ HANDLE
Code:
typedef HANDLE HWND;
und HANDLE ist ein PVOID (void*)

Code:
typedef PVOID HANDLE;
typedef void *PVOID;
Die beiden Typen unterscheiden sich also nur in ihrem Namen und ihrer Verwendung. Microsoft hat für verschiedene Handles verschiedene Typen eingeführt, damit man sie auseinanderhalten kann. Auch wenn man natürlich einfach void* schreiben könnte, empfiehlt es sich diese Typen auch zu verwenden. Verbessert die Verständlichkeit des Codes.

z.B.
Code:
HWND = Window Handle
HBITMAP = Bitmap Handle
HBRUSH = Brush Handle
HMODULE = Module Handle
HFILE = File Handle
...


florian0 is online now  
Thanks
1 User
Old 08/01/2018, 00:10   #3
 
elite*gold: 0
Join Date: Apr 2017
Posts: 9
Received Thanks: 0
Ok danke, ich habs jetzt verstanden
James15225 is offline  
Reply



« DLL winapi gui | Welche Lektüre »

Similar Threads
Bug - Pixelsearch() hWnd
11/09/2015 - AutoIt - 2 Replies
Moin, habe seit kurzem das Problem, dass ich der Funktion PixelSearch() kein Handle zuweisen kann. Eigentlich kann ich es schon zuweisen und es wird kein Fehler ausgegeben, jedoch wird der Pixel(bereich) auf dem default window, also dem Desktop, gewählt, anstelle meines angegebenen Handles. Folgender (vereinfachter) Code: $hWnd = GUICreate("xyz", 640, 480) GuiSetState(@SW_SHOW, $hWnd) While 1 $pixel = PixelSearch(0, 0, 640, 480, 0, 0, 1, $hWnd) If Not @error Then ToolTip(".",...
Hwnd check fail :o?
08/05/2014 - C/C++ - 1 Replies
Warum funktioniert dei Abfrage nicht ob das Fenster exestiert ? wstring LPCWSTR_Windowname; HWND HWND_Windowhwnd; bool HWND_GetSucces=true; while(HWND_GetSucces) { cout << "Type in Window Name:";
FRAGE FRAGE FRAGE FRAGE FRAGE FRAGE FRAGE
03/21/2011 - Technical Support - 5 Replies
Hi Leute, Habe ein Problem mit meinen PC. Habe Win 7 drauf will ihn formatieren also komlett reseten auf werkseinstellungen. Eine Recovery CD ist net dabei ( ist ein Notebook falls es wichtig ist xD ). Habe es mit dem format c probiert dann klick ich das an öffnet sich nur ein schwarzes kleines fenster das sich sofort wieder schließt. Wahrscheinlich falsche ruprik für solche probleme verschiebt mich einfach xDD. Danke im Vorraus ;) MFG
Error: "Das Handle ist ungültig!"
10/29/2005 - WoW Ask the Experts - 13 Replies
In letzter Zeit, wenn ich WoW starten will erscheint immer folgende Fehlermeldung: -------------------------------------------------------------------------- C:/Programme/World of Warcraft/WoW.exe Das Handle ist ungültig. -------------------------------------------------------------------------- :hm:



All times are GMT +1. The time now is 01:52.


Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2018 elitepvpers All Rights Reserved.