Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Invalid_handle_value (https://www.delphipraxis.net/191601-invalid_handle_value.html)

Der schöne Günther 1. Feb 2017 12:04

AW: Invalid_handle_value
 
Das ist im Endeffekt das gleiche wie als irgendjemand vor 15 Jahren gesagt hat "Von der technischen Seite her macht es tatsächlich keinen Unterschied, ob du
Delphi-Quellcode:
THandle
oder
Delphi-Quellcode:
Cardinal
verwendest." :P

Zacherl 1. Feb 2017 12:23

AW: Invalid_handle_value
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1360543)
Das ist im Endeffekt das gleiche wie als irgendjemand vor 15 Jahren gesagt hat "Von der technischen Seite her macht es tatsächlich keinen Unterschied, ob du
Delphi-Quellcode:
THandle
oder
Delphi-Quellcode:
Cardinal
verwendest." :P

Naja :lol: MSDN sagt folgendes:
Code:
typedef void *PVOID;
typedef PVOID HANDLE;
typedef HANDLE HWND;
Macht in diesem Falle also tatsächlich auch in der Zukunft keinen Unterschied, sofern die Definition von HWND beibehalten wird (was aus Gründen der Abwärtskompatibilität sicherlich geschieht).

himitsu 1. Feb 2017 13:32

AW: Invalid_handle_value
 
Zitat:

Zitat von Zacherl (Beitrag 1360544)
sofern die Definition von HWND beibehalten wird

Nja, oder so lange sich HANDLE nicht ändert, denn auch wenn es "aktuell" der gleiche Typ ist, muß das nicht so bleiben.

z.B. könnte HWND in Zukunft 32 Bit bleiben,
aber HANDLE könnte man auf 64 Bit ändern.

PS: Für SendMessage gibt es eigentlich auch die Typen LPARAM, WPARAM und LRESULT, die Delphi zwar kennt, aber die fast niemand verwendet, noch nichtmal Delphi. :roll:



Ein Problem ist auch, das die Codevervollständigung und CodeInsight/HelpInsight den Namen des Basistypen aber nicht des verwendeten "Alias" anzeigen.
Außer man definiert etwas explizit nicht als Alias, sondern als neuer (abgeleiteter) Typ.

Zacherl 1. Feb 2017 13:49

AW: Invalid_handle_value
 
Zitat:

Zitat von himitsu (Beitrag 1360554)
Nja, oder so lange sich HANDLE nicht ändert, denn auch wenn es "aktuell" der gleiche Typ ist, muß das nicht so bleiben.

z.B. könnte HWND in Zukunft 32 Bit bleiben,
aber HANDLE könnte man auf 64 Bit ändern.

Ziemlich unwahrscheinlich, weil ja jetzt schon beide Typen mit der Pointer-Size skalieren.

Generell habt ihr natürlich recht, dass man bei Möglichkeit doch bitte den korrekten Typ verwenden sollte. Das wollte ich mit meiner ersten Aussage auch auf gar keinen Fall in Frage stellen. Hier sollte
Delphi-Quellcode:
HANDLE
/
Delphi-Quellcode:
THandle
verwendet werden und daran gibt es nichts zu rütteln.

EWeiss 1. Feb 2017 14:37

AW: Invalid_handle_value
 
Zitat:

Das ist im Endeffekt das gleiche wie als irgendjemand vor 15 Jahren gesagt hat
Ich denk sage mal nichts mehr dazu wurde ja ausreichend erklärt.

Aber das noch.
Ob ich nun nen Käfer fahre oder einen Aufgemotzten wie vor 15 Jahren bleibt sich gleich.
Zumindest was den Typ angeht.

happy code :)

gruss

himitsu 1. Feb 2017 17:06

AW: Invalid_handle_value
 
PS: Viele Fehler bei Programm-Umstellungen ala
32 Bit -> 64 Bit
ANSI -> Unicode (vor und ab Delphi 2009)

beruhen auf "falschen" Typen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz