Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt..

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Alex-Digital.

    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt..

    Hallo
    ich bekomme immer beim Debuggen die Fehlermeldung: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.."
    Ich weiß darüber gibt es bereits genügend Threads aber mit hat nichts weitergeholfen. Vielleich weiß jemand von euch woran das liegen kann.
    Freue mich über jede Hilfe.
    Es geht um ein Upload auf Imgur. Habe den Code zufällig auf google gefunden da ich gerade an einem Screenshottool sitze.

    Mein Code:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.Text
    3. Imports System.Net
    4. Imports System.Web
    5. Public Class Form1
    6. Dim path As String = textbox2.text
    7. Private Sub PostToImgur()
    8. Dim apiKey As String = "***MEIN API-Key***"
    9. Dim imageData() As Byte
    10. Dim fileStream As FileStream = File.OpenRead(Path)
    11. imageData = New Byte((fileStream.Length) - 1) {}
    12. fileStream.Read(imageData, 0, imageData.Length)
    13. fileStream.Close()
    14. Dim uploadRequestString As String = HttpUtility.UrlEncode("image", Encoding.UTF8) + "=" + HttpUtility.UrlEncode(System.Convert.ToBase64String(imageData)) + "&" + HttpUtility.UrlEncode("key", Encoding.UTF8) + "=" + HttpUtility.UrlEncode(apiKey, Encoding.UTF8)
    15. Dim webRequest As HttpWebRequest = CType(Net.WebRequest.Create("http://api.imgur.com/2/upload"), HttpWebRequest)
    16. webRequest.Method = "POST"
    17. webRequest.ContentType = "application/x-www-form-urlencoded"
    18. webRequest.ServicePoint.Expect100Continue = False
    19. Dim streamWriter As IO.StreamWriter = New IO.StreamWriter(webRequest.GetRequestStream)
    20. streamWriter.Write(uploadRequestString)
    21. streamWriter.Close()
    22. Dim response As WebResponse = webRequest.GetResponse
    23. Dim responseStream As Stream = response.GetResponseStream
    24. Dim responseReader As StreamReader = New StreamReader(responseStream)
    25. Dim responseString As String = responseReader.ReadToEnd
    26. Dim ImageURL As String = Split(responseString, "<original>")(1).Split("<")(0)
    27. TextBox1.Text = ImageURL
    28. End Sub
    29. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    30. PostToImgur()
    31. End Sub
    32. End Class


    Gruß
    shocK
    Der Objektverweis ist, wenn du auf ein Objekt verweist. Wenn dass nicht instanziert wurde, gibts nen Fehler. Du instanzierst ein Objekt mit dem Schlüsselwort New. Das hast du irgendwo vergessen. (Ich glaube bei Filestream)
    Mfg
    Vincent

    @shocK
    Wie Vincent das schon richtig gesagt hat, benötigst du zum Instanzieren das Schlüsselwort: New
    Das fehlt bei FileStream! Würde dann verbessert so aussehen:

    VB.NET-Quellcode

    1. Dim fileStream As New FileStream = File.OpenRead(Path)
    Hallo,

    probier mal, anstatt

    VB.NET-Quellcode

    1. Dim imageData() As Byte
    2. Dim fileStream As FileStream = File.OpenRead(Path)
    3. imageData = New Byte((fileStream.Length) - 1) {}


    so zu machen:

    VB.NET-Quellcode

    1. Dim fileStream As FileStream = File.OpenRead(Path)
    2. Dim imageData((fileStream.Length) - 1) As Byte = {}


    Dann weist du den später zu und sparst so eine Zeile Code :thumbsup:

    MFG

    Alex-Digital :D
    ~ Alex-Digital :D

    if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D