Entwickler-Ecke
Sonstiges (Delphi) - Eigene *.exe compilieren
Robii - Mi 26.05.10 14:12
Titel: Eigene *.exe compilieren
Guten Mittag,
ich habe eine Frage. Und zwar habe ich ein Programm gebastelt in dem man verschiedene Parameter einstellen kann, z.B. Title einer Form usw. Jetzt möchte ich gerne, das wenn man auf den Generate-Knopf drückt, eine *.exe erstellt wird die meine forgefertigten Funktionen beherscht und und die vorher eingegebenen Parameter verwendet. Also quasi einen Compiler?
Ist dies möglich & wenn ja, wie?
Lieben Gruß,
robii.
Moderiert von
Narses: Topic aus VCL (Visual Component Library) verschoben am Mi 26.05.2010 um 14:41
Narses - Mi 26.05.10 14:45
Moin!
Möglich ist vieles, die Frage ist eher, wieviel Sinn das macht oder ob es nicht bessere Alternativen gibt. ;)
Man kann nicht mal so eben einen Compiler "bauen", aber man kann den Delphi-Compiler für sowas nutzen (irgendwann ist die CLI-Version rausgefallen, bei D7 ist sie jedenfalls noch dabei). Das ist aber eine ziemlich frickelige Aktion, würde ich von abraten. :?
Warum gestaltest du die Anwendung nicht so, dass sie parametriert läuft? Einfach eine Konfigurationsdatei dazu tun, in der die "Einstellungen" abgelegt sind. Notfalls kann man sowas auch binär an die EXE-Datei dranhängen (
jaenicke hat dazu mal eine Unit entwickelt). :idea:
cu
Narses
Robii - Mi 26.05.10 15:15
Ich glaube ich beschreibe nochmal genauer was ich meine :)
Und zwar habe ich ein Programm geschrieben, mit dessen Hilfe man einen Client erstellen kann. In diesem Hauptprogramm kann man eintragen, wie die Ip/ der Port des Servers heißt z.B. Hat man alles eingetragen, kann man auf 'Generieren' klicken und es wird eine Client.exe ausgegeben, die die Ip & den Port beinhaltet und nur noch gestartet werden muss und sich dann automatisch mit dem im Hauptprogramm angegeben Server verbindet. Das ganze soll einem kleinen Chat dienen, den ich gerne mit einem Freund betreiben möchte.
Lieben Gruß,
robii.
Webo - Mi 26.05.10 15:28
Ich glaube soweit war auch alles klar, es ging eher darum dass diese Aufgabe eines Compilers gleich käme. Dieses wiederum wäre nicht mal eben so geschrieben.
Narses schlug dir ja schon Alternativen vor :)
Robii - Mi 26.05.10 16:07
Das heißt ich müsste vom Prinzip her meinen Clienten einmal schreiben und erstellen und dann mit dem Hauptprogramm diesen nur in den Ausgabe-Ordner kopieren und die Parameter mit der Unit von jaenicke anhängen?
Lieben Gruß,
robii.
E: Wo finde ich die Unit denn? :)
StrikeLucky - Mi 26.05.10 16:55
Wenn ich einmal fragen darf, wozu brauchst du dann "Client.exe"?
Wenn dein Freund die IP & Port hat und trägt sie in das Hauptprogramm ein, wieso verbindet sich dann das Hauptprogramm nicht direkt?
Du machst dann ja einen Umweg, erst Hauptprogramm starten, IP & Port eintragen, Client erstellen, Client starten, chatten ist doch alles unnötig oder? Einfach aus dem Hauptprogramm verbinden...
Robii - Mi 26.05.10 17:35
Ich versuche das jetzt mal mit der Unit von Jaenicke. Ich habe mir die Demo + Unit runtergeladen und folgendes geschrieben. Meinem Verständnis nach müsste der Quellcode bewirken, das an die *.exe PreClient.exe die Variablen aIp,aPort & aAs angehängt werden oder?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TfNew.ClientModifizieren; var FileContents: TSJExeDataStream; Datei: String; begin Datei := (ExtractFilePath(Application.ExeName)+'Files\PreClient.exe'); FileContents := TSJExeDataStream.Create(Datei); try FileContents.WriteString(aIp+'#'+aPort+'#'+aAs+'#'); ShowMessage('Erfolgreich generiert!'); finally FileContents.Free; end; end; |
Allerdings wird die Meldung 'Erfolgreich generiert!' niemals angezeigt. Das Programm hängt sich aber auch nicht auf..?!
Lieben Gruß,
robii.
Edit: Funktioniert doch! Falsch aufgerufen! :p
jaenicke - Mi 26.05.10 20:44
Ich würde das nicht mit Trennzeichen trennen sondern als drei Strings mit dreimal WriteString schreiben, dann kannst du das mit ReadString nämlich auch automatisch wieder einzeln auslesen. ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!