code Compiler

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von vbfrage446.

    code Compiler

    Hallo, ich bin am verzweifeln. In meiner Form funktioniert mein codedom Compiler gut. Aber ich schätze am code stimmt etwas nicht mit dem timer. Wenn die exe fertig ist kommt die.Fehlermeldung: Null Reference Exception
    Könnt ihr mir bitte weiterhelfen? Der folgende code ist der code der mein Compiler compiliert.

    Dim code As String = _
    "Imports System.Windows" & nl & _
    "Imports System.Windows.Forms" & nl & _
    "Imports System.Drawing" & nl & _
    "Imports System.EventArgs" & nl & _
    "Imports System.Timers" & nl &_
    "Public Class xxxform" & nl & _
    "Inherits System.Windows.Forms.Form" & nl & _
    "Friend WithEvents T1_Screen As System.Windows.Forms.Timer" & nl & _
    "Dim lblInfo As New Label With {.Parent = Me, .Width = 300, .Height = 300}" & nl & _
    "Private Sub xxxform_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load" & nl & _ "Me.T1_Screen.Interval = 10000" & nl & _
    "Me.T1_Screen.Enabled = False" & nl & _
    "Me.Size = New Size(350, 350)" & nl & _
    "lblInfo.text = " & c34 & _ TB_Speicherpfad.Text & c34 & nl & _
    "End Sub" & nl & _
    "Private Sub T1_Screen_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles T1_Screen.Tick" & nl & _
    "Dim bounds As Rectangle" & nl & _
    "Dim screenshot As System.Drawing.Bitmap" & nl & _
    "Dim graph As Graphics" & nl & _
    "bounds = Screen.PrimaryScreen.Bounds" & nl & _
    "screenshot = New System.Drawing.Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb)" & nl & _
    "graph = Graphics.FromImage(screenshot)" & nl & _ "graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)" & nl & _
    "screenshot.Save(" & c34 & TB_Speicherpfad.Text & c34 & " & ""test3"" & "".jpg"")" & nl & _
    "End Sub" & nl & _
    "Private Sub InitializeComponent()" & nl & _
    "Me.SuspendLayout() " & nl & _
    "Me.ClientSize = New System.Drawing.Size(292, 273) " & nl & _
    "Me.Name = " & c34 & "xxxform" & c34 & nl & _
    "Me.ResumeLayout(False) " & nl & _
    "End Sub" & nl & _
    "End Class"

    ************** Ausnahmetext **************
    System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    bei xxxform.xxxform_Load(Object sender, EventArgs e)
    bei System.Windows.Forms.Form.OnLoad(EventArgs e)
    bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
    bei System.Windows.Forms.Control.CreateControl()
    bei System.Windows.Forms.Control.WmShowWindow(Message& m)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.Form.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    Und noch wichtiger ist, zeige nicht der Code der verarbeitet werden soll, sondern den Code der den Code kompiliert!
    こんにちわ
    Achte beim stellen von Fragen auf eine genaue Fragestellung, mir passiert das selbst häufig, andere können dir dann nicht so gut helfen.
    Ich habs schon hin bekommen.
    An diesem folgenden Code sind 2 Syntaxfehler drin. Ich möchte mit CodeDom Compiler
    daraus eine exe erstellen. Wer findet diese 2 Syntaxfehler? Bin am verzweicheln. Hab den code bisshen gekürzt. TB2_ScreenUhr.Text ist eine textbox.


    Dim nl As String = Microsoft.VisualBasic.vbCrLf
    Dim c34 As String = Microsoft.VisualBasic.Chr(34)
    ...
    ...
    Dim code As String = _
    ...
    ...
    "graph = Graphics.FromImage(screenshot)" & nl & _
    "graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, _
    CopyPixelOperation.SourceCopy)" & nl & _
    c34 & TB2_ScreenUhr.Text & c34 & " = " & "System.DateTime.Now" & nl & _
    "Dim sText As String = " & c34 & TB2_ScreenUhr.Text & c34 & nl & _
    "sText = sText.Replace("":"", """")" & nl & _
    "sText = sText.Replace(""."", """")" & nl & _
    "sText = sText.Replace("" "", """")" & nl & _
    c34 & TB2_ScreenUhr.Text & c34 & " = sText" & nl & _
    "screenshot.Save(" & c34 & TB_Speicherpfad.Text & c34 & " & " & _
    c34 & TB2_ScreenUhr.Text & c34 & " & "".jpg"")" & nl & _
    Wie ErfinderDesRades schon gesagt hat

    Bitte formatiere deinen Code mit [ vbnet ] [ /vbnet ] !!!

    Das kann doch keiner lesen....
    こんにちわ
    Achte beim stellen von Fragen auf eine genaue Fragestellung, mir passiert das selbst häufig, andere können dir dann nicht so gut helfen.
    Hi
    es wird nicht besser lesbar, wenn der Code in vbnet-Tags steht, da es sich ja um einen String handelt.
    Warum stellst du den Code, den du kompilieren willst, nicht einfach in die Ressourcen und formatierst ihn anschließend, z.B. über String.Format? Dann hast du auch das ganze nl und c34-Zeug nicht drin. Du erhältst außerdem vom Compiler eine Liste der Fehler, die du ausgeben kannst.

    Die Zeilen
    c34 & TB2_ScreenUhr.Text & c34 & " = " & "System.DateTime.Now" & nl & _
    c34 & TB2_ScreenUhr.Text & c34 & " = sText"
    sind mir suspekt. Warum die c34s?

    Warum willst du überhaupt Code kompilieren? Für das Programm erscheint mir das überflüssig.

    Viele Grüße
    ~blaze~
    An anderer Stelle hast du Chr(34) über "text vor den Geänsefüßchen""Text nach den Gänsefüßchen" gelöst und du erhältst im Resultat folgendes:
    "something" = sText
    oder
    "something" = System.DateTime.Now

    Option Strict solltest du auch beachten, insbesondere im dynamisch erzeugten Code.

    Viele Grüße
    ~blaze~
    Dann könnte es an TB_Speicherpfad liegen. Allerdings sollte dir CodeDom die genaue Fehlerzeile mitteilen können. Wie das genau funktioniert kannst über im Objekt Browser oder Msdn in Erfahrung bringen.

    PS: Google mal nach Compileresult

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

    Ich habe TB2_ScreensUhr.Text auch deklariert mit Friend WithEvents TB2_ScreensUhr As New System.Windows.Forms.Textbox. da müsste doch eig. kein Fehler drin sein. Liegt es denn an der textbox oder an die system.DateTime.Now ? So gut kenne ich mich leider auch nicht aus. Und wenn ich den code als Ressource nehme kann ich den leider im Laufzeit nicht mehr bearbeiten weil man ja dann praktisch die Ressource ändern muss wegen den Angaben wie textbox usw.