kann man C "units" verwenden

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
lrlr
Beiträge: 127
Registriert: Di 3. Nov 2009, 09:48

kann man C "units" verwenden

Beitrag von lrlr »

kann ich (irgendwie) C files in FreePascal verwenden?

(oder die compilierten .o files) ???

oder muss man eine .dll erzeugen, um auf die in C geschriebenen funktionen zugreifen zu können ???

lrlr
Beiträge: 127
Registriert: Di 3. Nov 2009, 09:48

Re: kann man C "units" ferwenden

Beitrag von lrlr »

ich hab es selber gefunden:

{$link cunit.o}
{$linklib c}

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: kann man C "units" verwenden

Beitrag von pluto »

ach und damit kannst du nun auf die Funktionen und die Möglichkeiten in der O Datei zugreifen ?
brauchst keine "Header Datei" oder wie ?
MFG
Michael Springwald

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: kann man C "units" verwenden

Beitrag von Hitman »

Na die Funktionsaufrufe muss man sich schon selbst schreiben (oder konvertieren).
function bla: Integer; extern;

lrlr
Beiträge: 127
Registriert: Di 3. Nov 2009, 09:48

Re: kann man C "units" verwenden

Beitrag von lrlr »

pluto hat geschrieben:ach und damit kannst du nun auf die Funktionen und die Möglichkeiten in der O Datei zugreifen ?
brauchst keine "Header Datei" oder wie ?

siehe

ftp://ftp.freepascal.org/pub/fpc/docs-p ... Pascal.pdf" onclick="window.open(this.href);return false;

ist wohl generell eher "mühsam" und bei C++ noch mühsamer..

RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

Re: kann man C "units" verwenden

Beitrag von RSE »

Ich hätte nicht gedacht, dass so etwas funktionieren könnte. Rein intuitiv hätte ich gesagt, es müsse eine Library erstellt werden. Aber ich hab auch keine Ahnung vom Linken. Ich denke, dass diese Möglichkeit unbedingt mehr public gemacht werden muss, da sie ME einen sehr guten Ansatzpunkt für einen schrittweisen Wechsel von C/C++ zu FPC darstellt. Vielleicht sollte man diese Möglichkeit sogar in der Lazarus GUI integrieren. Header translation C -> Pascal gibt es ja auch schon. Ich weiß zwar nicht, inwieweit das automatisierbar ist, aber das sollte man unbedingt verfolgen! Vielleicht wird es dann irgendwann möglich sein C-Source wie eine Pascal-Unit direkt zu integrieren (unter Angabe des entsprechenden C Compilers).
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

Benutzeravatar
jwdietrich
Beiträge: 173
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-14.1, Windows 2000-11, Raspbian (L 3.7.0, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: kann man C "units" verwenden

Beitrag von jwdietrich »

Geht es auch umgekehrt?

Sprich, kann man in FPC Units schreiben, die von einem C- oder C++-Environment genutzt werden können?

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: kann man C "units" verwenden

Beitrag von Hitman »

So pauschal sowieso nicht. FPC und GCC sind binärkompatibel (mehr oder weniger). Das gilt dort in beide Richtungen, könnte allerdings (ebenfalls in beide Richtungen) schwierig werden, mit den jeweiligen Laufzeitbibliotheken (die FPC RTL bzw. die CRT).

lrlr
Beiträge: 127
Registriert: Di 3. Nov 2009, 09:48

Re: kann man C "units" verwenden

Beitrag von lrlr »

(ansi)strings nicht vergessen, ...

da wird sich C etwas schwer tun..

RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

Re: kann man C "units" verwenden

Beitrag von RSE »

Na bei den Strings kann man ja auch mal auf C Rücksicht nehmen und PChar verwenden wenn man sowas plant.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

Antworten