VB6.0 Code zu VB2010 konvertieren

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von n30phyt3.

    VB6.0 Code zu VB2010 konvertieren

    Hallo alle zusammen :)

    ich habe ein Problem und zwar möchte ich mein VB6-Programm in VB2010 weiter schreiben. Das Problem ist was ich bemerkt habe, viele Befehle werden da anders verarbeitet. Gibt es da nicht irgend einen Converter um den VB6-Code in VB2010 zu konvertieren oder vllt eine andere Möglichkeit?
    Ab VB2005 ist so ein Konverter implementetiert, jedoch nicht gut, weil im Code steht sehr viel individualität und da ists sehr schwer nen allgemeinen converter zu schreiben der z.b. einfach alte Befehle durch neue ersetzt. Es hat sich ja auch so sehr viel geändert was ein Converter einfach nicht hinbekommen kann.

    VB2005 zu VB2010 ist da weitaus wahrscheinlicher weils schon sehr ähnlich ist.

    Dir wird nichts anderes übrig bleiben als es selbst zu übersetzten, dann wirds auch richtig, zudem kannste den Code gleich optimieren, weil VB6 ja mehr als nur unsauber war, ggf. wird der Code auch noch deutlich kürzer, so wars bei mir wenn ich alte VB6 Projekte nach VB2008 übertragen und optimiert habe.
    hab versucht ein Modul zu übersetzen ... der unterstreicht End Function?

    woran liegts?

    Fehlermeldung

    Quellcode

    1. Warnung 1 Von der Funktion "vb_berechnung" wird nicht in allen
    2. Codepfaden ein Wert zurückgegeben.
    3. Wenn das Ergebnis verwendet wird, kann zur Laufzeit eine
    4. NULL-Verweisausnahme auftreten.


    Quellcode

    1. Module berechnung
    2. Function vb_berechnung() As String
    3. With Main
    4. .lbl1.Text = .chk5.Checked * 2 ^ 0 + .chk6.Checked * 2 ^ 1 + _
    5. .chk7.Checked * 2 ^ 2 + .chk8.Checked * 2 ^ 3 + .chk9.Checked * 2 ^ 4 + _
    6. .chk10.Checked * 2 ^ 5 + .chk11.Checked * 2 ^ 6 + .chk12.Checked * 2 ^ 7 + _
    7. .chk13.Checked * 2 ^ 8 + .chk14.Checked * 2 ^ 9 + .chk4.Checked * 2 ^ 10
    8. End With
    9. End Function
    10. End Module
    Nun ist doch auch klar, der fehler wird ja auch deutlich ausgegeben. Du gibst kein Rückgabewert an.
    Wenn es eine Routine sein soll wo nur was ausgeführt aber nichts zurück gegeben wird nutzt man Sub()

    VB.NET-Quellcode

    1. Private Sub TueWas()
    2. MsgBox("Hallo Welt!")
    3. End Sub


    im gegensatz zu einer Funktion

    VB.NET-Quellcode

    1. Private Function GibWas() As String
    2. Return "Hallo Welt!"
    3. End Function
    4. MsgBox(GibWas())


    deswegen meinte ich VB6 ist Dreckscode und somit kommt auch kein Converter damit klar weils viel zu komplex ist.
    ahoi

    ich würde mal behaupten in deiner sub fehlt der ereignis-handler
    das prog weiß also gar nicht wann diese sub ausgeführt werden soll

    du müsstest also diese sub unter einem button-click oder einem checkchange -ereignis ablegen
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    ist doch in dem chk1_Click oder sehe ich das falsch?

    also Click_Ereignis?


    ich habs

    Quellcode

    1. Private Sub chk1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk1.CheckedChanged

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

    nein das ist nur der name des subs.
    im code fenster oben links im pulldown menü wählst du deine checkbox aus (in deinem fall "chk1" denk ich)
    dann oben rechts pulldown menü das "click" event und der der sub wird dir korrekt erzeugt.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    wie kann ich den folgenden Code richtig schreiben?

    ich möchte, dass vb_dbb05_type den hier berechneten Wert hat, sodass ich in Form1 das so ausrufen kann

    Quellcode

    1. Call vb_dbb05_type
    2. lbl2.Text=vb_dbb05_type




    Quellcode

    1. Module dbb05_type
    2. Sub vb_dbb05_type()
    3. Dim vb_dbb05_type As String
    4. If Main.chk1.Checked = False And Main.chk4.Checked = False And Main.cmb1.Text = "DBB-05" Then
    5. vb_dbb05_type = "C"
    6. ElseIf Main.chk1.Checked = True And Main.chk4.Checked = False And Main.cmb1.Text = "DBB-05" Then
    7. vb_dbb05_type = "D"
    8. ElseIf Main.chk1.Checked = False And Main.chk4.Checked = True And Main.cmb1.Text = "DBB-05" Then
    9. vb_dbb05_type = "E"
    10. ElseIf Main.chk1.Checked = False And Main.chk4.Checked = True And Main.cmb1.Text = "DBB-05" Then
    11. vb_dbb05_type = "F"
    12. Else
    13. vb_dbb05_type = "ERROR"
    14. End If
    15. End Sub
    16. End Module
    Hättest du aufmerksam gelesen wüsstest du das.

    Hierbei handelt es sich um eine FUNKTION

    Als Return gibst du den Wert an z.B.

    VB.NET-Quellcode

    1. Public Function vb_dbb05_type() As String
    2. If Main.chk1.Checked = False And Main.chk4.Checked = False And Main.cmb1.Text = "DBB-05" Then
    3. Return "C"
    4. End If
    5. Return Nothing
    6. End Function


    VB.NET-Quellcode

    1. lbl2.Text = vb_dbb05_type()
    oh .. danke dir ;)

    und noch was ..


    Quellcode

    1. Module berechnung
    2. Public Sub vb_berechnung()
    3. With Main
    4. .lbl4.Text = .chk5.Checked * 2 ^ 0 + .chk6.Checked * 2 ^ 1 + _
    5. .chk7.Checked * 2 ^ 2 + .chk8.Checked * 2 ^ 3 + .chk9.Checked * 2 ^ 4 + _
    6. .chk10.Checked * 2 ^ 5 + .chk11.Checked * 2 ^ 6 + .chk12.Checked * 2 ^ 7 + _
    7. .chk13.Checked * 2 ^ 8 + .chk14.Checked * 2 ^ 9 + .chk4.Checked * 2 ^ 10
    8. End With
    9. End Sub
    10. End Module


    der rechnet in das Negative ... woran liegt es denn?


    Kann mir da keiner helfen?

    ich will, dass chk.Cecked den Wert=1 hat so dass ich damit rechnen kann

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „n30phyt3“ ()