Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   C2D - C++ 2 Delphi Converter (https://www.delphipraxis.net/64256-c2d-c-2-delphi-converter.html)

Sebastian R. 1. Mär 2006 13:45


C2D - C++ 2 Delphi Converter
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leute,

hier im Forum gibt es des öfteren anfragen, wie ein C++ Source in Delphi aussieht. Ich habe mir gedacht, ich schreibe mal einen Converter, der C++ Code in Delphi Code umwandelt. Das ganze klappt schon sehr gut und ich möchte euch hier meine erste Version des C2Ds (C++ 2 Delphi Converters) vorstellen.

Funktionen
  • Filtert aus C++ Funktionen die Variablen raus und schreibt es so um, dass die Variablen bei den Pascal-Funktionen unter function ... deklariert werden.
  • Wandelt cout, cin etc. um in WriteLn() oder ReadLn()
  • Ersetzt alle Unterschiede zwischen C++ und Delphi, wie = in C++ und := in Delphi.
  • Kann sowohl Programme als auch Header umwandeln, sprich units und programs.

Ich habe als Test einfach mal einen kleinen C++-Quelltext geschrieben:

Code:
#include <iostream.h>
#include <conio.h>

int main()
{
   char name[255];
   cout << "Hallo Welt" << endl;
   cout << "Wie ist ihr Name: ";
   cin >> name;
   cout << "Hallo, " << name << "!" << endl;
   return 0;
}
Mein Programm liefert nach dem Umwandeln den folgenden Code:
Delphi-Quellcode:
program exam;
 
  {$APPTYPE CONSOLE}
uses Windows, SysUtils;
 
 
function main(): Integer;
var
  name: String;
begin
  WriteLn('Hallo Welt');
  Write('Wie ist ihr Name: ');
  ReadLn(name);
  WriteLn('Hallo, ' + name + '!');
  Result := 0;
end;
 
 
begin
  Main;
end.
Wie ihr seht, läuft das Proggie schon ganz gut.

Ich hoffe, ihr könnt damit was anfangen!

MfG, Sebastian R.

JasonDX 1. Mär 2006 13:58

Re: C2D - C++ 2 Delphi Converter
 
Hi

An sich ganz nettes Programm :thumb:
Bloß, wenn man etwas mehr als bloß ein-ausgabe verwendet, will mein Delphi plötzlich das Ergebnis nicht mehr kompilieren :cry:
warum wohl?
aus:
Code:
#include <iostream.h>
#include <conio.h>

int main()
{
   int bla;
   for (int i = 0; i < 10; i++)
   {
      bla += i;
      bla = bla << ~i;
      if (bla == 0)
         break;
   }
   i += 3;
   return i;
}
wurde
Delphi-Quellcode:
program hell;
 
  {$APPTYPE CONSOLE}
uses Windows, SysUtils;
 
 
function main(): Integer;
var
  bla: Integer;
begin
  for (int i := 0; i < 10; i++)
   begin
  bla +:= i;
  bla := bla << ~i;
  if (bla :=:= 0)
  break;
   end;
  i +:= 3;
  Result := i;
end;
 
 
begin
  Main;
end.
und dabei hab ich doch noch gar nicht mit den lustigen Dingen angefangen :cry:
:zwinker:

greetz
Mike

Newbie44 1. Mär 2006 14:03

Re: C2D - C++ 2 Delphi Converter
 
Gibt es die Datei auch als zip-datei? ich hab nämlich im moment kein Winrar vorliegen

wäre demnach nett wenn du auch so nett wärst und mir auch ne zip version zur verfügung stellen könntest.

danke im vorraus

gruß

sebastian

Die Muhkuh 1. Mär 2006 14:06

Re: C2D - C++ 2 Delphi Converter
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bin mal so frei. :-)

Wenn eine neue Version kommt, lösche ich das Attachment wieder raus.

Der Jan 1. Mär 2006 14:07

Re: C2D - C++ 2 Delphi Converter
 
Von der idee her nicht schlecht, nur laufen tut es nicht, zumindest nicht, wenn man andere als deine Example-Datei nimmt, bzw. c-Files, wo nicht unterstützte Elemente vorkommen.

Zitat:

C++ To Delphi - Converter
=========================
by Sebastian Ruhleder
=========================

Exception EStringListError in Modul converter.exe bei 000113B1.
Listenindex überschreitet das Maximum (52).
Das kam z.B. beim Versuch, die sample.h von Dr.Bobs HeadConv übersetzen zu lassen.

Andere C-Dateien werden teilweise zwar verarbeitet, aber nicht übersetzt. Du solltest Augenmerk auf die übersetzung von Schleifen, Strukturen etc. legen. Mit einfachem Suchen und ersetzen ist es hier nicht getan

Nur weiter so, aber das ist noch viel Arbeit ...

Zitat:

/* In case of error, print help string and return error (-1) */
int commandline_errormsg(FILE *f, struct commandline *args, char *prgname, char *messagehead)
ist nicht
Zitat:

begin In case of error, print help string and Result := error (-1) end;
function commandline_errormsg(FILE *f, struct commandline *args,
var
*prgname, *messagehead): Char;

Sebastian R. 1. Mär 2006 14:43

Re: C2D - C++ 2 Delphi Converter
 
Ist noch nicht ganz ausgereift. Schleifen werden noch eingebaut! ;)

Newbie44 1. Mär 2006 15:52

Re: C2D - C++ 2 Delphi Converter
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das programm selber ist nicht schlecht, wenn denn kein fehler im programm wäre, irgendwas hat er mit kernel32.dll.

ich habs auf 2 unabhängigen rechnern probiert und überall hängt es sich auf

PierreB 1. Mär 2006 16:04

Re: C2D - C++ 2 Delphi Converter
 
Hui also bei mir geht das Programm gar nicht. Wenn ich es starten möchte erscheint nur kurz ein Fenster und danach ist es auch wieder weg. Keine Fehlermeldung o.a. das Programm is einfach wieder weg....

Newbie44 4. Mär 2006 08:15

Re: C2D - C++ 2 Delphi Converter
 
Wie siehts aus? Wird es bald ein update der software geben die die genannten probleme behebt?

Daniel G 4. Mär 2006 13:02

Re: C2D - C++ 2 Delphi Converter
 
Zitat:

Zitat von PierreB
Hui also bei mir geht das Programm gar nicht. Wenn ich es starten möchte erscheint nur kurz ein Fenster und danach ist es auch wieder weg. Keine Fehlermeldung o.a. das Programm is einfach wieder weg....

Du hast es auch mit den nötigen Parametern gestartet, oder? :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:35 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz