Programm mit Programm machen
lima-city → Forum → Programmiersprachen → Basic
anwendung
archiv
basic
basierend
beitrag
button
compiler
datei
editor
endeffekt
error
fragen
gegenwrtig ausgefhrten anwendung
handle
lsung
option
parameter
test
textdatei
verstehe
-
Hi,
diese Frage habe ich schon bei mehreren Foren gestellt aber jeder sagte: das kannst du vergessen, das ist viel zu schwer.
Deshalb frag ich hier mal.
Kann das keiner das ich mit meiner Test.exe eine Test2.exe mit dem Inhalt MsgBox "Hallo",vbOKonyl,"HallO"
??? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Willst du jetzt einen Editor coden? Oder willst du eine Vorhandene exe verändern?
-
ömg... Ich würde dir ja helfen. Aber ich verstehe deine Frage nicht so ganz.
-
Ich kann ihm zwar bei seinem Problem nicht weiterhelfen, aber ich verstehe ihn so:
Er will eine Datei namens Test.exe ...
Mit dieser .exe will er eine weitere Datei erstellen namens Test2.exe, welche eine msgbox mit seinem gewünschten Inhalt enthält.
Somit will er Test2.exe mit Test.exe erstellen lassen. -
Sowie ich das verstanden habe, willst du einen Compilrer coden.
Möglich, aber nicht für dich denke ich, wenn du dich nicht einmal ausdrücken kannst, damit jeder versteht was du möchtest.
Interessanter Link dazu:
http://de.wikipedia.org/wiki/Compiler
Oder meintest du etwas anderes? *zwinker*
-
ich glaube er meint sowas, wie ein Programm, das wenn man es ausführt eine neue Datei macht. ICh kenn mich mit der Sprache nicht sonderlich aus, aber er will nur den Teil, wo die Datei erzeugt wird und nicht den ganzen Compiler.
-
@Phillip
soweit war ich auch schon^^
@adrians
Genau ich will einen Compilrer erstellen -
Ehm... da muss ich mich den anderen Forennutzern anschließen: Das IST zu schwierig.
Du könntest es aber vielleicht schaffen, einen Editor zu programmieren, der auf vorhandene C oder Java Compiler zugreift und damit die Dateien kompiliert.
Aber selbst einen Compiler zu schreiben... Nein, das schaffst du innerhalb der nächsten Jahre nicht. -
Anscheinend hat niemand von euch wirklich Ahnung von Visual Basic .Net
Denn es ist möglich mit einem Programm weitere Programme dynamisch zu erstellen.
Also die Aufgabe lautet:
Du möchtest aus deinem .Net-Programm heraus einen Code kompilieren (und eine ausführbare Datei daraus erstellen). Der Code befindet sich in einem Textfeld oder einer Textdatei.
Lösung:
Benutze "Microsoft.VisualBasic.VBCodeProvider", um ein "ICodeCompiler"-Objekt zu erstellen.
Beispiel:
Deine Anwendung besteht aus einem Button und einer TextBox. In der Textbox steht der Programmcode für das dynamisch erstellbare Programm.
Der Button erstellt das neue Programm und startet das neue Programm.
Der Code:
' ########## Code für den Button ##########
Private Sub Button_Anwendung_Erstellen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCompile.Click
' Den Compiler erstellen.
Dim VB As New Microsoft.VisualBasic.VBCodeProvider
Dim Compiler As System.CodeDom.Compiler.ICodeCompiler = VB.CreateCompiler()
' Einige Parameter definieren
' In diesem Fall speichern wir die Assembly-Datei in einer Datei.
Dim Param As New System.CodeDom.Compiler.CompilerParameters
Param.GenerateExecutable = True
Param.OutputAssembly = "TestApp.exe"
Param.IncludeDebugInformation = False
' Einige gebräuchliche Assembly-Verweise hinzufügen (basierend auf der gegenwärtig ausgeführten Anwendung).
Dim Asm As System.Reflection.Assembly
For Each Asm In AppDomain.CurrentDomain.GetAssemblies()
Param.ReferencedAssemblies.Add(Asm.Location)
Next
' Den Code kompilieren.
Dim Results As System.CodeDom.Compiler.CompilerResults = Compiler.CompileAssemblyFromSource(Param, Me.TextBox1.Text)
' Fehlerüberprüfung.
If Results.Errors.Count > 0 Then
Dim Err As System.CodeDom.Compiler.CompilerError
Dim ErrorString As String
For Each Err In Results.Errors
ErrorString &= Err.ToString()
Next
MessageBox.Show(ErrorString)
Else
' Die neue Anwendung starten.
Dim ProcessInfo As New ProcessStartInfo("TestApp.exe")
Process.Start(ProcessInfo)
End If
End Sub
' ########## Text, der in der TextBox stehen könnte ##########
Option Explicit On
Option Compare Binary
Option Strict Off
Imports System
Imports Microsoft.VisualBasic 'Benötigt für MsgBox
Public Module Testanwendung
Public Sub Main()
Console.WriteLine("Ich wurde dynamisch erstellt!")
MsgBox("Hallo",0+48+4096+65536,"Toll")
Console.ReadLine()
End Sub
End Module
Und das ist auch gar nicht so schwer...
Hab ich mir dafür ein Karma verdient? *gg* -
mach das doch mit einem WINRAR SFX archiv, was test2.exe auspackt!
Du liest wohl auch nur die Hälfte der Fragen...
Er will kein vorhandenes Programm irgendwo entpacken sondern er will mit seinem Programm ein weiteres DYNAMISCHES Programm schreiben und erstellen.
Was ist DYNAMISCH?
Der Code, der in das neue Programm geschrieben werden soll, ist zur Zeit der Weitergabe unbekannt und wird erst während der Ausführung eingegeben.
Also ist deine Antwort mit dem SFX Archiv völliger Schwachsinn, sorry!
wäre hier Visual Basic hilfreich? *duck*
1. Wir sind hier im Bereich "Visual Basic"
2. Visual Basic ist eine Programmiersprache, er will den Code für seine Frage wissen!
3. Ich habe schon eine Lösung geschrieben (siehe vorherigen Beitrag von mir)
-
Also danke für die vielen Antworten!
Also ich habe jetzt meinen eigenen Compiler gemacht ;) -
lilwayne schrieb:
Also danke für die vielen Antworten!
Also ich habe jetzt meinen eigenen Compiler gemacht ;)
Zeigen Kannst den Link hier reinschreiben?
Ansonsten:
Du könntest ein Programm als Assemblercode mit im Programm abspeichern die Variablen ggf. einsetzen und dann kompilieren lassen ;)
Das hab ich mal irgendwo gelesen^^
Beitrag geaendert: 14.1.2007 16:15:26 von andy2309 -
Also da ihr alle so braf wart geb ich euch mal nen Tipp
Geht auf www.pscode.com und sucht in Visual Basic 6 nach nem EXE Compiler -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage