AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte C2D - C++ 2 Delphi Converter
Thema durchsuchen
Ansicht
Themen-Optionen

C2D - C++ 2 Delphi Converter

Ein Thema von Sebastian R. · begonnen am 1. Mär 2006 · letzter Beitrag vom 4. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
Sebastian R.
Registriert seit: 12. Feb 2006
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.
Angehängte Dateien
Dateityp: rar c2d_converter_103.rar (43,8 KB, 56x aufgerufen)
Keep on programming!


CyCode.net - Meine Programme, Tutorials und Quelltexte
 
Benutzerbild von JasonDX
JasonDX
 
#2
  Alt 1. Mär 2006, 13:58
Hi

An sich ganz nettes Programm
Bloß, wenn man etwas mehr als bloß ein-ausgabe verwendet, will mein Delphi plötzlich das Ergebnis nicht mehr kompilieren
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


greetz
Mike
Mike
  Mit Zitat antworten Zitat
Newbie44
 
#3
  Alt 1. Mär 2006, 14:03
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
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

 
Delphi 2009 Professional
 
#4
  Alt 1. Mär 2006, 14:06
Ich bin mal so frei.

Wenn eine neue Version kommt, lösche ich das Attachment wieder raus.
Angehängte Dateien
Dateityp: zip c2d_converter_571.zip (44,4 KB, 14x aufgerufen)
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

 
Delphi XE7 Ultimate
 
#5
  Alt 1. Mär 2006, 14:07
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;
  Mit Zitat antworten Zitat
Sebastian R.
 
#6
  Alt 1. Mär 2006, 14:43
Ist noch nicht ganz ausgereift. Schleifen werden noch eingebaut!
Sebastian R.
  Mit Zitat antworten Zitat
Newbie44
 
#7
  Alt 1. Mär 2006, 15:52
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
Miniaturansicht angehängter Grafiken
fehler_732.jpg  
  Mit Zitat antworten Zitat
PierreB
 
#8
  Alt 1. Mär 2006, 16:04
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....
  Mit Zitat antworten Zitat
Newbie44
 
#9
  Alt 4. Mär 2006, 08:15
Wie siehts aus? Wird es bald ein update der software geben die die genannten probleme behebt?
  Mit Zitat antworten Zitat
Daniel G
 
#10
  Alt 4. Mär 2006, 13:02
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?
  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 17:05 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