VB-Code kompilieren

    • VB.NET

    Es gibt 87 Antworten in diesem Thema. Der letzte Beitrag () ist von teddygun300.

      ich entschuldige mich für den mist den ich vorhin vom stapel gelassen habe
      ich habs ausprobiert und so einfach wie ich dachte gehts net


      aber falls mal einer versuch code via filedialog und readline reinzuholen und diesen einzulesen mein tip scheide die ersten drei zeichen ab


      nur was mich jetzt interessieren würde kann man die bereits erstellten forms aus den .desinger.vb dateien auslesen??bzw. diese mit compilieren

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „simiD“ ()

      also ich hab mir n compiler auf dem code gebastelt nund das ganze dann in ne form verpackt

      gez wollte ich versuchen die von mir bereits geschriebenen und vorallem desingten forms zu kompiliren

      form hatte dan 2 openfiledialoge mit denen jeweils der pfad zu den dateien *. vb und *.designer.vb eingeholt wurde.

      dann hab ich die dateien mit sub in der art

      VB.NET-Quellcode

      1. dim file as int
      2. dim code as string
      3. file=freefile
      4. fileopen(file,input)
      5. while not EOF(file)
      6. code+=readline(file)&vbcrlf
      7. end while
      8. fileclose(file)
      9. 'entschuldigt bitte den schlechten stil war jetzt auf die schnelle ausm hirn gesaugt

      eingelesen, die ersten drei zeichen abgeschnitten, die codes verknüpft

      VB.NET-Quellcode

      1. imports system.windows.forms

      vorangestellt und das ganze versucht in eins durch zu compiliren.

      hat nicht geklappt
      wahrscheinlich weil der *.designer.vb partital class war und und *.vb nicht
      und dannach hab ich mich wieder meinem bildübertragungsproblem zugewandt.

      nur würde mich jetzt interessieren obs ne möglichkeit gibt besagten *.designer.vb in den code einzubinden

      und um kevin89 zu beruhigen das is das konzept und wenn man sich selber ne IDE schreiben will soll man das tun muss ja net unbedingt die commy damit zuspammen oder evtl wäre sowas ja auch ma n gutes commy projekt ne eigene IDE

      und davor hatte ich eine übereifrige antwort gepostet die volkommen schwachsinn war

      //edit:
      war spät und ich hatte seit ca 36 h net geschlafen

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „simiD“ ()

      VB.NET, das weißt du oder... :D

      Außerdem: Das alles muss in einem Module verpackt sein, nach welchem Muster, kannst du hier in einigen Posts nachlesen. Die Fehler/Probleme kannst du nachgucken indem du in den Ordner, wo die .vb-Datei gespeichert wurde, gehst und die öffnest.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „kevin89“ ()

      Hmmm.. Ich hab ein Problem.
      Warum funktioniert dieser Code nicht?

      VB.NET-Quellcode

      1. Private Sub cmdname_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdname.Click
      2. Dim code As String ' hier den zu kompilierenden Code zuweisen
      3. code = frmMain.SyntaxRTB1.Text
      4. If My.Computer.FileSystem.DirectoryExists("Dateien\") = False Then ' ist bei meinem programm der fall gewesen
      5. My.Computer.FileSystem.CreateDirectory("Dateien\")
      6. End If
      7. My.Computer.FileSystem.WriteAllText("Dateien\" & txtname.Text & ".vb", code, False) ' vb-datei schreiben
      8. Shell(Environ("systemroot") & "\Microsoft.NET\Framework\v3.5\vbc.exe /t:exe ""Dateien\" & txtname.Text & ".vb", AppWinStyle.Hide)
      9. Timer.Enabled = True
      10. Me.Hide()
      11. End Sub
      12. Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
      13. If System.IO.File.Exists("Dateien\" & txtname.Text & ".exe") Then
      14. MessageBox.Show("Kompilierung erfolgreich")
      15. Timer.Enabled = False
      16. Else
      17. MessageBox.Show("Kompilierung nicht erfolgreich")
      18. Timer.Enabled = False
      19. End If
      20. End Sub


      Da kommt dann immer "Kompilierung nicht erfolgreich".
      Code ist richtig, und der Interval des Timers ist 3500.

      kevin89 schrieb:

      1. Ist der Compiler sehr pingelig, also solltest du den Code in deiner SyntaxRTB überprüfen
      2. Wenn ich mich nicht irre, muss ans Ende der Pfadangabe zur VB-Datei noch ein Anführungszeichen (")


      1. Der Code ist 100% richtig.
      2. Nein, du irrst dich, sonst bekomme ich Probleme mit Windows.. :cursing:
      Wie Probleme mit Windows :D

      Lass dir erstmal
      Environ("systemroot")
      bei dir ausgeben und schau nach, ob das auch wirklich [FESTPLATTE]\WINDOWS ist. Und probier mal das:

      VB.NET-Quellcode

      1. Shell(Environ("systemroot") & "\Microsoft.NET\Framework\v3.5\vbc.exe /t:exe ""Dateien\" & txtname.Text & ".vb""", AppWinStyle.Hide)
      Ich wollte noch ein Beispiel hinterherposten, wie zum Beispiel VS den VBC inkl. Parametern beim Kompilieren aufruft:

      c:\WINDOWS\Microsoft.NET\Framework\v3.5\Vbc.exe /noconfig /imports:Microsoft.VisualBasic,System,System.Collections,System.Collections.Generic,System.Data,System.Drawing,System.Diagnostics,System.Windows.Forms /optioncompare:Binary /optionexplicit+ /optionstrict:custom /nowarn:42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 /optioninfer+ /rootnamespace:IDE__ /doc:^""""obj\Debug\IDE +.xml^"""" /define:^""""CONFIG=\^""""Debug\^"""",DEBUG=-1,TRACE=-1,_MyType=\^""""WindowsForms\^"""",PLATFORM=\^""""AnyCPU\^""""^"""" /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll,c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Deployment.dll,c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll,c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll,c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll,c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /main:IDE__.My.MyApplication /debug+ /debug:full /filealign:512 /out:^""""obj\Debug\IDE +.exe^"""" /resource:obj\Debug\IDE__.Form1.resources /resource:obj\Debug\IDE__.Resources.resources /target:winexe Form1.vb Form1.Designer.vb ^""""My Project\AssemblyInfo.vb^"""" ^""""My Project\Application.Designer.vb^"""" ^""""My Project\Resources.Designer.vb^"""" ^""""My Project\Settings.Designer.vb""
      IDE + -> C:\Dokumente und Einstellungen\Vincent Casser\Eigene Dateien\Visual Studio 2008\Projects\IDE +\IDE +\bin\Debug\IDE +.exe


      Das ganze kann man dann natürlich auch per Shell starten. Vll könnt ihr daraus einige Parameter entnehmen.
      mit /target:winexe kann man windows form anwendungen erstellen ;) ...
      schaut euch doch mal die einzellnen parameter der vbc.exe an in dem ihr einfach Ausführen - cmd und dann denn pfad + vbc.ece /? schreibt ;)

      VB.NET-Quellcode

      1. Shell(Environ("systemroot") & "\Microsoft.NET\Framework\v3.5\vbc.exe /target:winexe ""C:\TEMP\Blubb.vb""", AppWinStyle.Hide)


      MFG: Jeff
      Jop, wie in dem von mir geposteten Sample einer Kompilierung in VS. Da kommt target:winexe auch drin vor. Im Prinzip kann man das - bis auf die Pfade - sogar 1:1 übernehmen. Eine super Liste der Parameter + Beschreibung + Beispiele gibt es hier in der MSDN.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kevin89“ ()

      das englisch so wie ichs gesagt habe hat man es auf deutsch :o ... vorraussetzung man hat deutsches betriebsystem :o

      Start - Ausfüren - "cmd"

      C:\Windows\System32\Microsoft.NET\Framework\v3.5\vbc.exe /?

      somit wird eine rießen liste von allen parametern und beschreibung angezeigt :p

      \EDIT\ fuer die, dies beim post von mir davor ncoh nciht verstanden haben :p \END EDIT\
      Es muss doch auch eine andere Möglichkeit geben eine .exe zur Laufzeit zu erstellen, es gibt doch (nehmen wir mal illegale Tools) auch solche Trojaner, diese erstellen, ja auch eine Server.exe und ich man kann mit dem Troja diese Server.exe auch builden wenn man kein VS auf dem PC hat.
      Mit dieser Methode kann man doch kein Tool entwickeln, weil es nur Leute mit VS nutzen können.