AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Sinnvolle Methode zum Linken von C/C++ Code in Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Sinnvolle Methode zum Linken von C/C++ Code in Delphi

Ein Thema von Assarbad · begonnen am 8. Okt 2010 · letzter Beitrag vom 8. Okt 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#1

Sinnvolle Methode zum Linken von C/C++ Code in Delphi

  Alt 8. Okt 2010, 14:57
Moin,

würde gern eine C-Bibliothek (in Form einer .c-Datei) in ein Delphi-Projekt linken. Hat da jemand Erfahrung mit solchen Mischprojekten die keinen händischen Eingriff erfordern um bspw. die OBJ-Datei zu erzeugen die gelinkt werden soll (ob OBJ oder LIB ist mir im Endeffekt egal).

Alles was ich bisher sah, benutzte im Prinzip {$LINK ...} aber die OBJ-Datei mußte quasi "vorkompiliert" werden. Außerdem scheint mir die Dokumentation der maskierten Symbolnamen (bei dieser Methode) etwas mager, was mir immer wieder Probleme bereitet.

Danke.

Edit: es geht also speziell darum, daß ich innerhalb des Projektes wie es vom RAD Studio erstellt wird (oder innerhalb einer Projektgruppe) in die Lage versetzt werde den C-Code frisch zu kompilieren und dann in das Projekt reinzulinken.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad ( 8. Okt 2010 um 15:03 Uhr) Grund: Klarstellung
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Sinnvolle Methode zum Linken von C/C++ Code in Delphi

  Alt 8. Okt 2010, 15:04
Da Delphi keinen C-Compiler hat könnnen C/CPP-Dateien nicht direkt verwendet werden sondern nur die Zwischenkompilate ALA *.obj.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Sinnvolle Methode zum Linken von C/C++ Code in Delphi

  Alt 8. Okt 2010, 15:07
Da er wohl das RAD-Studio hat, welches einen C-Compiler beinhaltet, sollte es theroetisch möglich sein. Notfalls halt mit manueller Build-Skript Anpassung

Btw.: Welcome Back Olli.
Markus Kinzler

Geändert von mkinzler ( 8. Okt 2010 um 15:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: Sinnvolle Methode zum Linken von C/C++ Code in Delphi

  Alt 8. Okt 2010, 15:11
Ich kenn auch nur den Weg über die vorkompilierte OBJ.

Eventuell gibt es ja ab XE2 was, wenn die da eh einen neuen Compiler nutzen?

Oder nutzt das PreCompile-Script und compilierst dort die C in eine OBJ,
bzw. man bindet einen PreCompiler in sein Delphi ein, welcher die PAS/DPR parst, nach einem "eigenen" {$CLINK xyz.c} (oder sonstwie) sucht, die C-Datei kompiliert und den Befehl durch {$LINK Temp.obj} ersetzt, bevor sich der Delphi-Compilier die Datei vornimmt.


Jupp, und willkommen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 8. Okt 2010 um 15:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#5

AW: Sinnvolle Methode zum Linken von C/C++ Code in Delphi

  Alt 8. Okt 2010, 15:17
Da er wohl das RAD-Studio hat, welches einen C-Compiler beinhaltet, sollte es theroetisch möglich sein. Notfalls halt mit manueller Build-Skript Anpassung
Exakt. Ein manuelles Build-Skript ist aber auch nur Frickelei, weil ich dort entweder den Pfad (zum Compiler) hartkodieren müßte oder über jede Menge ansonsten unsinnigen Code ermitteln müßte.

Btw.: Welcome Back Olli.
Danke. Dieser Name war leider schon vergeben, meines Wissens nach aber nicht an mich.

Ich kenn auch nur den Weg über die vorkompilierte OBJ.

Eventuell gibt es ja ab XE2 was, wenn die da eh einen neuen Compiler nutzen?
Kombiniert gibt es ja den C++ Builder schon lange mit Delphi zusammen. Seltsam, daß da noch niemand sonst Bedarf angemeldet hat. Immerhin ist Build-Automatisierung eines der großen Themen in modernen Programmierparadigmen. Unabdingbar für "Continuous Integration", beispielsweise.

Oder nutzt das PreCompile-Script und compiliert dort die C in einen OBJ,
bzw. man bindet einen PreCompiler in sein Dlphi ein, welcher die PAS/DPR parst, nach einem "eigenen" {$CLINK xyz.c} (oder sonstwie) sucht, die C-Datei kompiliert und den Befehl durch {$LINK Temp.obj} ersezt, bevor sich der Delphi-Compilier die Datei vornimmt.
Das klingt interessant. Kannst du mir da irgendwelche Links geben bei denen ich mich belesen kann?

Jupp, und willkommen
Danke danke
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: Sinnvolle Methode zum Linken von C/C++ Code in Delphi

  Alt 8. Okt 2010, 15:23
Nee, leider nicht.

Ich hatte vor einer Weile mal einen PreCompiler für's RAD-Studio (2006 oder 2007) gesehn, welcher z.B. _LINE_ , _FILE_ und Ähnliches ersetzen konnte.
Ich weiß auch nicht ob/wie man da z.B. über die OTA rankommt.

Fand das recht interessant, aber leider finde ich diesen nicht mehr
Abgesehn von einem für D7, aber dieser läßt sich leider nicht auf neuere Delphi portieren.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Sinnvolle Methode zum Linken von C/C++ Code in Delphi

  Alt 8. Okt 2010, 15:26
Ich hatte vor einer Weile mal einen PreCompiler für's RAD-Studio (2006 oder 2007) gesehn, welcher z.B. _LINE_ , _FILE_ und Ähnliches ersetzen konnte.
Ich weiß auch nicht ob/wie man da z.B. über die OTA rankommt.

Fand das recht interessant, aber leider finde ich diesen nicht mehr
Sowas hat die Jedi in den Debug-Units drin. Geht aber AFAIK nur zur Laufzeit mit entsprechenden Debug-Infos.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Sinnvolle Methode zum Linken von C/C++ Code in Delphi

  Alt 8. Okt 2010, 15:33
Ich hatte vor einer Weile mal einen PreCompiler für's RAD-Studio (2006 oder 2007) gesehn, welcher z.B. _LINE_ , _FILE_ und Ähnliches ersetzen konnte.
Du meinst wahrscheinlich die DLangExtensions vom Andreas Hausladen (jbg)
Markus Kinzler
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#9

AW: Sinnvolle Methode zum Linken von C/C++ Code in Delphi

  Alt 8. Okt 2010, 15:38
Du kannst übrigens nicht jeden C-Compiler nutzen, da Delphi nur Objekt-Dateien welche im OMF Format vorliegen linken kann!
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#10

AW: Sinnvolle Methode zum Linken von C/C++ Code in Delphi

  Alt 8. Okt 2010, 15:40
Du meinst wahrscheinlich die DLangExtensions vom Andreas Hausladen (jbg)
Interessantes Projekt, danke schonmal dafür.

Du kannst übrigens nicht jeden C-Compiler nutzen, da Delphi nur Objekt-Dateien welche im OMF Format vorliegen linken kann!
Ist bekannt.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:47 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