Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C nach Delphi, die Zweite...DECLARE_HANDLE(name) (https://www.delphipraxis.net/125858-c-nach-delphi-die-zweite-declare_handle-name.html)

turboPASCAL 13. Dez 2008 10:06


C nach Delphi, die Zweite...DECLARE_HANDLE(name)
 
Hi,

Code:
 #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
Wie würde man das in Pascal interpretieren ?

Cyf 13. Dez 2008 10:47

Re: C nach Delphi, die Zweite...DECLARE_HANDLE(name)
 
Das sollte ein Makro sein, dass 2 Typen deklariert, sowas ist in Delphi imho nicht möglich.
Aber so in der Richtung:

Delphi-Quellcode:
type
  TName = record
    unused: Integer;
end;
  PName = ^TName;
Name gibt dabei den Typnamen an, kann mich aber irren hab C länger nciht mehr benutzt.
Vielleicht geht es in Delphi über bedingte Compilierung.

[Edit] < gelöscht, erste Idee war wohl näher dran... >

Naja schätze, das war keine so große Hilfe. :pale:

Flocke 13. Dez 2008 10:48

Re: C nach Delphi, die Zweite...DECLARE_HANDLE(name)
 
Einfach als
Delphi-Quellcode:
type
  T<name> = THandle;
Mit dem Makro wird versucht, Handles typsicher zu machen.

turboPASCAL 13. Dez 2008 11:02

Re: C nach Delphi, die Zweite...DECLARE_HANDLE(name)
 
Aha, ok. THandle bzw. PHandle sollte es demnach tun. Danke.

nicodex 15. Dez 2008 08:08

Re: C nach Delphi, die Zweite...DECLARE_HANDLE(name)
 
Da der Inhalt des Wertes und/oder der Referenz nicht bestimmt/privat ist, sollte man es, wenn möglich, mit folgendem Übersetzen:
Delphi-Quellcode:
type
  TXxx = type Pointer;
Damit man nicht (aus Versehen) auf die Idee kommt, etwas anderes als diesen Typ zu übergeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:03 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