Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi C - Code in Delphi (https://www.delphipraxis.net/101102-c-code-delphi.html)

Bubblegum 8. Okt 2007 15:05


C - Code in Delphi
 
Kann man eigentlich auch C Source - Code direkt in Delphi einbinden (BDS 2006) und mit kompilieren?

mkinzler 8. Okt 2007 15:09

Re: C - Code in Delphi
 
Grundsätzlich ja.

Bubblegum 8. Okt 2007 15:20

Re: C - Code in Delphi
 
Das ist ja schon einmal gut zu hören.

Aber wie mache ich das. Ich kann doch nicht einfach C-Code statt Delphi schreiben oder?

Turnschuh 8. Okt 2007 16:11

Re: C - Code in Delphi
 
Im großen und ganzen kannst du c code verwenden. Ich selber habe ein C# Programm in Delphi umsetzen müssen und konnte den Quellcode ziemlich kopieren, musste da halt nur die Syntax von verschiedenen Befehlen angleichen.

Code:
for (Int32 i = 0; i < ByteArray.Length; i++)
{
  test = i;
}
Delphi-Quellcode:
for i := 0 to Length(ByteArray) - 1 do
begin
  test := i;
end
Die {/} werden in Delphi durch Begin/End ersetzt und zuweisungen werden mit := anstatt nur mit = gemacht.
Das ist glaubich auch schon der größte Unterschied.

Apollonius 8. Okt 2007 16:24

Re: C - Code in Delphi
 
Es geht aber um "direkt einbinden", und das ist etwas anderes als Übersetzen. Vor allem in großen Projekten ist Übersetzen wohl kaum zumutbar. Als Lösung im allerletzten Fall würde ich eine DLL vorschlagen, aber das sollte man, wenn möglich, vermeiden (DLL muss immer mitgeliefert werden etc.).

Nuclear-Ping 8. Okt 2007 16:37

Re: C - Code in Delphi
 
Wenn es um das Einbinden von in C geschriebenen Programmteilen geht, die in Form von .DLL oder .OBJ vorliegen, sollte das, wie mkinzler schon geschrieben hat, grundsätzlich gehen. Im Grunde ist es egal, womit eine .DLL geschrieben wurde, solange sie Funktionen exportiert und ggf. durch die DLL benötigte Bibliotheken vorhanden sind.

Das heisst also im konkreten Fall für dich, dass du in C eine DLL schreiben kannst, die die gewünschten Funktionen exportiert und diese dann halt einfach in Delphi entweder statisch oder dynamisch (mit LoadLibrary und GetProcAdress) einbinden.


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