AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DWORD oder Cardinal

Ein Thema von CalganX · begonnen am 7. Feb 2003 · letzter Beitrag vom 7. Feb 2003
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

DWORD oder Cardinal

  Alt 7. Feb 2003, 17:14
Hi,
was mir immerwieder auffällt ist, dass für Handles immer andere Sachen genommen werden. Mal ist es DWORD oder Cardinal oder HWND oder, oder, oder...

Kann mir das mal bitte jemand erklären!?

Chris
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 7. Feb 2003, 17:26
Moin Chris,

HWND und DWORD sind beide als LongWord deklariert (siehe auch Windows.pas)

Bei einem 32 Bit Compiler ist hat LongWord die gleiche Bedeutung wie Cardinal.

Alle diese drei Werte entsprechen also, bei einem 32 Bit Compiler, einem 32 Bit Wert ohne Vorzeichen.

Da HWND und DWORD in der Windows API allerdings üblich sind, werden oft diese verwendet (statt Longword).

Ein wesentlicher Unterschied zu C und Pascal:
Wird da als Typ, z.B., ein HWND vorgegeben bei einer Funktion, dann fängt der C-Compiler i.d.R. an zu meckern, wenn man statt dessen eine Variable vom Typ DWORD angibt, während Delphi das kommentarlos schluckt.

Es wäre zwar schön, wenn auch Delphi hier so stur wäre, so dass man gezielt einen Typecast durchführen müsste (was den Code dann auch besser dokumentieren würde, bzw. wodurch einem auffällt, dass man etwas falsches angibt), aber leider funktioniert die dafür vorgesehene Technik, zumindest unter D5, nicht so recht.

HWND ist so deklariert:

Delphi-Quellcode:
type
  HWND = type Longword;
Dieses = type Longword soll eigentlich dafür sorgen, dass ein direkter Austausch von DWORD und HWND Werten nicht ohne Typecast möglich ist, aber das hab' ich so leider bislang nie zum Laufen bekommen. (entweder ich find' nur die Option nicht, oder es geht tatsächlich nicht)

Zum Thema cardinal kannst Du hier übrigens bestimmt weitere Infos finden, wenn Du mal nach "generisch*" suchst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:56 Uhr.
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