Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Quellen zum Thema Headerkonvertierung nach 2008? (https://www.delphipraxis.net/188930-quellen-zum-thema-headerkonvertierung-nach-2008-a.html)

Assarbad 20. Apr 2016 21:09

Delphi-Version: 5

Quellen zum Thema Headerkonvertierung nach 2008?
 
Moin moin.

Bin etwas eingerostet in Sachen Delphi und hatte da letztens eine Anfrage aus Akademikerkreisen zum Thema Headerkonvertierung. Vielleicht ist der Anfragende sogar ein Forenmitglied. Bin da nicht sicher.

Einerlei. Forschung zu unterstützen ist eine noble Sache, also nahm ich mir ein paar Stunden um mir das Problem näher anzuschauen.

Es ging um die Konvertierung eines Headers für eine Bibliothek die zum Ansteuern eines Meßgerätes benutzt wird. Ich nehme an nachdem ich trotz vieler investierter Stunden keine Lösung bieten konnte (s.u.) hat der Anfragende mittlerweile aufgegeben auf eine Lösung von meiner Seite zu hoffen.

Zuerst schaute ich mir halt die Headerdatei an. Nix besonderes, ein paar Aliase für übliche Typen, hier und da ein paar #ifdef. Danach die beigefügte Konvertierung welche wohl mit headconv erstellt wurde.

Ein Blick auf die Projektseite für headconv/JDarth zeigte, daß es seit meinem Ausstieg aus JEDI keinerlei Fortschritt mehr gab.

Mein Plan war nun wie folgt:

1. Headerdatei manuell anpassen um headconv möglichst viele Hürden zu ersparen
2. headconv auf die Headerdatei ansetzen
3. iterativ anhand des Gelernten wieder bei 1. Anpassungen vornehmen.

Zu meinem Entsetzen mußte ich feststellen, daß headconv ganze Arbeit leistete die Ausgabe zu zerpflücken. Da wurden offenbar teils Strings an der falschen Stelle eingefügt, was bei einigen Funktionen dazu führte, daß die Übersetzung nun deutlich mehr Parameter für Funktionsprototypen veranschlagte als der Header und daß einige der Typen von Parametern total verkorkste Namen bekamen.

Nunja, mein Delphi-Foo ist ziemlich eingerostet, daher gab ich schnell die Idee auf headconv anzupassen.

Daher meine Frage:

Kennt jemand von euch gute Übersichten darüber, welche Grundtypen in C/C++ welchem Delphityp entsprechen? Bitte vorzugsweise inklusive Fußnoten zum Problemen wie bei 64-bittigen vorzeichenlosen Ganzzahlen, welche zwar dem Namen nach in älteren Delphiversionen existierten, aber lange Zeit eben doch vorzeichenbehaftet waren.

Meine Idee ist, daß ich in Python mithilfe von pycparser und anderen bereits existierenden Modulen vielleicht den Grundstein für eine Python-basierte Version von headconv legen könnte.

Falls jemandem aber aktuellere Forks von headconv oder gar ähnliche Projekte wie das von mir beschriebene bekannt sein sollten, bitte ich um Rückmeldung.

Vielen Dank.

Luckie 20. Apr 2016 21:21

AW: Quellen zum Thema Headerkonvertierung nach 2008?
 
Ist es denn so viel, dass es von Hand zu viel Arbeit wäre?

Daniel 20. Apr 2016 21:22

AW: Quellen zum Thema Headerkonvertierung nach 2008?
 
Moin Oliver,

schön, mal wieder von Dir zu lesen. :-)
Eine Dokumentation habe ich nicht, aber das aktuelle Delphi beinhaltet ein Werkzeug "SDKTransform", welches ObjectiveC- und CPP-Header zu übersetzen verspricht.
Sollte Dir das helfen, dann könnte ich oder jemand anders die gegebene Datei für Dich übersetzen lassen oder Du lädst Dir die Demo und probierst es selbst.

Assarbad 20. Apr 2016 21:26

AW: Quellen zum Thema Headerkonvertierung nach 2008?
 
Zitat:

Zitat von Luckie (Beitrag 1336143)
Ist es denn so viel, dass es von Hand zu viel Arbeit wäre?

Japp. Beziehungsweise, ich finde ich kann meine Zeit sinnvoller investieren als einmalig einen riesigen Header zu konvertieren (das hab ich zwischen 1999 und 2005 zur Genüge getan). Prinzipiell machbar ist es sicherlich auch händisch.

Zitat:

Zitat von Daniel (Beitrag 1336144)
Eine Dokumentation habe ich nicht, aber das aktuelle Delphi beinhaltet ein Werkzeug "SDKTransform", welches ObjectiveC- und CPP-Header zu übersetzen verspricht.
Sollte Dir das helfen, dann könnte ich oder jemand anders die gegebene Datei für Dich übersetzen lassen oder Du lädst Dir die Demo und probierst es selbst.

Oho. Was ist denn das aktuelle? 10.1? Ältere Versionen haben das noch nicht? Bzw. ab wann ist das Werkzeug verfügbar? Der Anfragende benutzt eigenem Bekunden nach Delphi XE3.

Und ja, das könnte helfen. Dann würde ich einfach mal den Kontakt hier ins Forum vermitteln, da die Header wohl nicht öffentlich verfügbar sind und ich sie daher ungern hier offen einstellen würde.

Namenloser 20. Apr 2016 21:26

AW: Quellen zum Thema Headerkonvertierung nach 2008?
 
Hallo Assarbad,

diese Unit vom Freepascal-Project könnte eine gute erste Anlaufstelle sein.

Assarbad 22. Apr 2016 08:37

AW: Quellen zum Thema Headerkonvertierung nach 2008?
 
Dank dir, das hilft auch ein bißchen. Scheint sich nicht sonderlich viel geändert zu haben seit ich aufgehört habe. Muß wohl nur die entsprechenden Synapsen mal wieder aktivieren ;)

andreaschr 27. Jun 2016 08:29

AW: Quellen zum Thema Headerkonvertierung nach 2008?
 
Hallo und Guten Morgen,
ich bin der Absender der Anfrage, von der Oliver schreibt. Für die Forschung ist mein Anliegen zwar nicht, aber ein Praktikum für die Ausbildung von Medizinern ist ja sicher auch nobel genug ...:).
Auf die Anregung von Daniel hin habe ich mir Delphi 10.1 beschaffen lassen in der Hoffnung, mit dem SDKTransform weiter zu kommen. Leider verstehe ich die Geschichte nicht. In der im Pfad "bin" vorhandenen Datei "SDKTransformRun.bat" taucht als Platform nur IOS oder OSX auf. Das läßt mich vermuten, dass ich hier für MS Win7 nicht weiterkomme.
Kann mir bitte jemand bezüglich der Nutzung von SDKTransform helfen?

Beste Grüße

Andreas


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