AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Tipps für Header-Übersetzungen
Thema durchsuchen
Ansicht
Themen-Optionen

Tipps für Header-Übersetzungen

Ein Thema von Luckie · begonnen am 29. Jul 2004 · letzter Beitrag vom 26. Apr 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

Re: Tipps für Header-Übersetzungen

  Alt 29. Nov 2004, 14:16
Zitat von Luckie:
Könntest du mir das mal eben bitte an obigen Code demonstrieren? Wäre nett von dir.
Nein, denn ich weiss selbst nicht wie es funktioniert

Ich wollte eigentlich über Hier im Forum suchenhppemit herausfinden wozu das gut ist

In der D7 Hilfe steht
Privates Symbol
---------------
Typ Parameter
Syntax {$NODEFINE Bezeichner}
Anmerkungen

Die Direktive NODEFINE verhindert, dass das angegebene Symbol in die für C++ generierte Header-Datei aufgenommen wird, während bestimmte Informationen in die Objektdatei ausgegeben werden können. Wenn Sie NODEFINE verwenden, liegt es in Ihrer eigenen Verantwortung, mit HPPEMIT alle benötigten Typen zu definieren. Ein Beispiel:
Delphi-Quellcode:
type

Temperature = type double;
   {$NODEFINE Temperature}

{$HPPEMIT 'typedef double Temperature'}


In der Types.pas von Delphi 7 finde ich folgenden Code:
Delphi-Quellcode:
  ...
  PPoint = ^TPoint;
  TPoint = packed record
    X: Longint;
    Y: Longint;
  end;
  {$NODEFINE TPoint}
  tagPOINT = TPoint;
  {$NODEFINE tagPOINT}

  PRect = ^TRect;
  TRect = packed record
    case Integer of
      0: (Left, Top, Right, Bottom: Longint);
      1: (TopLeft, BottomRight: TPoint);
  end;
  {$NODEFINE TRect}

  ...

  (*$HPPEMIT 'namespace Types'*)
  (*$HPPEMIT '{'*)
  (*$HPPEMIT '  struct TPoint : public POINT'*)
  (*$HPPEMIT '  {'*)
  (*$HPPEMIT '    TPoint() {}'*)
  (*$HPPEMIT '    TPoint(int _x, int _y) { x=_x; y=_y; }'*)
  (*$HPPEMIT '    TPoint(POINT& pt)'*)
  (*$HPPEMIT '    {'*)
  (*$HPPEMIT '      x = pt.x;'*)
  (*$HPPEMIT '      y = pt.y;'*)
  (*$HPPEMIT '    }'*)
  (*$HPPEMIT '  };'*)
  (*$HPPEMIT ' '*)
  (*$HPPEMIT '  typedef TPoint tagPoint;'*)
  (*$HPPEMIT ' '*)
  (*$HPPEMIT '  struct TRect : public RECT'*)
  (*$HPPEMIT '  {'*)
  (*$HPPEMIT '    TRect() {}'*)
  (*$HPPEMIT '    TRect(const TPoint& TL, const TPoint& BR) { left=TL.x; top=TL.y; right=BR.x; bottom=BR.y; }'*)
  (*$HPPEMIT '    TRect(int l, int t, int r, int b)         { left=l;    top=t;    right=r;    bottom=b;    }'*)
  (*$HPPEMIT '    TRect(RECT& r)'*)
  (*$HPPEMIT '    {'*)
  (*$HPPEMIT '      left    = r.left;'*)
  (*$HPPEMIT '      top     = r.top;'*)
  (*$HPPEMIT '      right   = r.right;'*)
  (*$HPPEMIT '      bottom  = r.bottom;'*)
  (*$HPPEMIT '    }'*)
  (*$HPPEMIT '    int Width () const { return right  - left; }'*)
  (*$HPPEMIT '    int Height() const { return bottom - top ; }'*)
  (*$HPPEMIT '    bool operator ==(const TRect& rc) const '*)
  (*$HPPEMIT '    {'*)
  (*$HPPEMIT '       return left ==  rc.left  && top==rc.top &&     '*)
  (*$HPPEMIT '              right == rc.right && bottom==rc.bottom; '*)
  (*$HPPEMIT '    }'*)
  (*$HPPEMIT '    bool operator !=(const TRect& rc) const '*)
  (*$HPPEMIT '    {  return !(rc==*this); }'*)
  (*$HPPEMIT ' '*)
  (*$HPPEMIT '       __property LONG Left    = { read=left,   write=left   }; '*)
  (*$HPPEMIT '       __property LONG Top     = { read=top,       write=top }; '*)
  (*$HPPEMIT '       __property LONG Right   = { read=right,  write=right  }; '*)
  (*$HPPEMIT '       __property LONG Bottom  = { read=bottom, write=bottom }; '*)
  (*$HPPEMIT '  };'*)
  (*$HPPEMIT '} /* namespace Types */ ;'*)
  ...
Hier werden wohl in C++ Syntax die Delphi Typen für den C++ Header deklariert.
Das ist alles was ich dazu weiß.

Ich hoffe das hilt Dir Luckie
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#12

Re: Tipps für Header-Übersetzungen

  Alt 29. Nov 2004, 14:28
Die Win32 Konversion von Marcel van Brakel (http://members.chello.nl/m.vanbrakel2/) enthaelt JwaWinNT.pas in der diese API bereits enthalten ist.
Entweder dort herunterladen oder warten bis wir das SourceForge-Projekt fertig haben. Wir stricken gerade fleissig dran.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#13

Re: Tipps für Header-Übersetzungen

  Alt 26. Apr 2005, 05:05
Zitat von Robert Marquardt:
Die Win32 Konversion von Marcel van Brakel (http://members.chello.nl/m.vanbrakel2/) enthaelt JwaWinNT.pas in der diese API bereits enthalten ist.
Der direkte Download befindet sich hier.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 14:14 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