Visual Basic 6-Unterstützung in Windows nicht tot zu kriegen

[English]Kleine Informationen für die Liebhaber von VB6 (Visual Basic 6). Wie es ausschaut, führt Microsoft die Unterstützung für VB6 auch in Windows 11 und Windows Server 2022 fort. Das wurde im November 2021 durch Microsoft angekündigt – ein Blog-Leser hat mich kürzlich darauf angesprochen. Damit dürften VB6-Anwendungen weitere 10 Jahre unter Windows laufen.


Anzeige

Visual Basic (kurz VB) ist eine proprietäre objektorientierte Programmiersprache. Um zwischen den alten, nur objektbasierten, und den neuen, auf dem .NET-Framework basierenden Versionen zu unterscheiden, werden erstere bis inklusive Visual Basic 6.0 als Visual Basic Classic, die letzteren hingegen als Visual Basic .NET (Abk. VB.NET) bezeichnet.

Die Ursprünge gehen bis ins Jahr 1991 zurück, als Microsoft Visual Basic 1 für DOS als Fortsetzung des bisherigen QuickBASIC veröffentlichte. Mit dem 1998 herausgekommenen Visual Basic 6 endete die Entwicklung, da dies die letzte Visual-Basic-Version Version war, die die Erstellung von nativen Win32-Programmen ermöglichte. Aber VB6-Anwendungen laufen nach wie vor, auch unter den neuesten Windows-Versionen.

Support für VB6 verlängert

Es gibt eine Unmenge Programme, die in Visual Basic geschrieben wurden. Und bisher war es so, dass Microsoft einen Support für Visual Basic 6 in Windows gewährte. Die Programme samt VB-Laufzeitumgebungen waren weiterhin nutzbar. Ich habe eigentlich immer darauf gewartet, dass diese Unterstützung irgendwann abgekündigt wird. Aber selbst für Windows 11 und Windows Server 2022 gibt es noch Support für VB 6.

Von Microsoft gibt es den Beitrag Support Statement for Visual Basic 6.0 on Windows, der letztmalig zum 5. November 2021 aktualisiert wurde. An diesem Tag hat Microsoft ja Windows 11 freigegeben. Dort heißt es:

The support policy below has been updated with Windows 10 version 20H2 support information.

Executive summary

The Visual Basic team is committed to "It Just Works" compatibility for Visual Basic 6.0 applications on the following supported Windows operating systems:

  • Windows 11
  • Windows 10
  • Windows 8.1
  • Windows 7 SP1
  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2008 R2

The Visual Basic team's goal is that Visual Basic 6.0 applications continue to run on supported Windows versions. As detailed in this document, the core Visual Basic 6.0 runtime will be supported for the full lifetime of supported Windows versions, which is five years of mainstream support followed by five years of extended support

Blog-Leser Wolfgang S. hat mich Mitte Dezember 2021 auf obigen Sachverhalt hingewiesen (danke dafür). Er ist wohl Entwickler der ersten Stunde, der mit den diversen Basic-Varianten von Microsoft gearbeitet hat – aber nie auf auf VB.NET (kam im Jahr 2002, im Jahr 2003 habe ich mal ein Buch dazu verfasst) umgestiegen. Er gibt an, dass seine Firma aktuell bei ca. 200 Kunden kaufmännische Software aus den Bereichen Warenwirtschaft, Finanzbuchhaltung, Zahlungsverkehr und UStVA erfolgreich im Einsatz habe. In seiner E-Mail schrieb mir Wolfgang zum VB6-Support:

Anlässlich der heutigen Support-Meldung für Windows 7/Server 2008 erlaube ich mir einen Hinweis auf die VisualBasic6-Unterstützung für Windows 11/Server 2022 (siehe obigen Link zum Support-Statement).

In schöner Regelmäßig wird diese immer nach Erscheinen einer finalen neuen Windows-Version für die Ausführung der VB6-Runtime aktualisiert.

Ich frage mich jedes Mal warum M$ das für ein schon lange totes Projekt immer noch macht.

Anscheinend ist der Druck der im Einsatz befindlichen Anwendungen so groß das man nicht anders kann, und sich sonst mit einer neuen Windows-Version ins Abseits kegeln würde.

Hab mal gehört das würden sich sonst die Fortune500-Firmen nicht gefallen lassen.

Wolfgang meint, dass das Thema ja mal einen Blog-Beitrag (bzw. einen heise-Artikel ) wert sei. Im heise-Forum gäbe es jedes Mal einen Shitstorm, wenn jemand VB6 auch nur erwähnt. Nun ja, das Thema habe ich jetzt mal kurz im Blog aufgegriffen – und damit wird es spannend. Der Support für VB6 müsste dann also bis 2031 reichen … und mich treibt jetzt die Frage um: Wer geht früher in Ruhestand, VB6 oder der Hausmeister dieses Blogs …


Cookies blockieren entzieht uns die Finanzierung: Cookie-Einstellungen

Dieser Beitrag wurde unter Software abgelegt und mit Software, VB6 verschlagwortet. Setze ein Lesezeichen auf den Permalink.

14 Antworten zu Visual Basic 6-Unterstützung in Windows nicht tot zu kriegen

  1. Zocker sagt:

    "Ich frage mich jedes Mal warum M$ das für ein schon lange totes Projekt immer noch macht."

    Der Umstieg auf .net und auch da immer wieder auf aktuellere Versionen ist nicht immer ganz so einfach. Einfach ein VB6-Projekt mit VB .net 2002+ öffnen und neu kompilieren ist nicht. Soviel ich weiß gibt es zwar ab Visual Basic 2005 einen integrierten Konverter, aber der über alte Befehle stolpern kann und nicht gut zu sein scheint. Mit VBUC gibt es zwar beispielsweise ein kommerzielles Tool zur Konvertierung, aber keine Ahnung wie gut das funktioniert. Je größer und komplexer das Projekt (und davon reden wir hier wohl), desto schwieriger wird die Konvertierung. Daher kann ich schon verstehen, dass man bei VB6 bleiben möchte nach dem harten Schnitt zu .net. Weil das läuft einfach.

    • Blupp sagt:

      Nur eine Vermutung, aber ich denke durch die Telemetrie wissen sie was noch an VB-Anwendungen läuft. Vieles das früher in VB geschrieben wurde läuft zum Teil noch immer. Kann gut sein das es genug ist das MS VB weiterhin unterstützen will.

  2. Michel Py sagt:

    Ich finde gut das Software die damals mit VB6 kompiliert worden sind auf alle Windows Versionen (98 bis 11) sehr gut laufen. Sogar die HASP Dongles, die ich vor 20 Jahren mit meine VB6 Software gebündelt habe, bekommen Heute noch frische Treibers !

    Für VB6 Entwickler die an die Limiten vom 32bit Welt gestossen sind, gibt es zur Zeit ein Projekt ein kompatibles VB6 IDE/Compiler neu zu machen der 64bit exe generieren wird: https://www.patreon.com/radbasic/membership
    Die suchen noch nach Sponsoring um schneller fertig zu werden !

    • Wolfgang W. sagt:

      Das von dir genannte Projekt hat einige Zweifler in den VB-Veteranen-Reihen. Wahrscheinlich zurecht, weil das was auf der Autoren-Seite versprochen wird, wie Weihnachten und Ostern zusammen klingt. Aus rein technologischer Sicht ist hingegen das Projekt auf https://www.twinbasic.com vielversprechender. Hier sind die Ziele realistisch und mit ersten verfügbaren Anwendungen auch schon belegt. Mal sehen wo die Reise hingeht. Auf jedem Fall wünsche ich beiden Projekten viel Erfolg!

  3. A. Nonym sagt:

    In Excel werden Excel4Macros (der Vorläufer von VBA) erst jetzt, aber nur in Office 365 stndardmäßig deaktiviert, aber wenn der User es exlizit anklickt, weiterhin unterstützt.

    Bekannt ist, das einige Malware diesen alten Typ von Makros nutzt.

  4. Stephan sagt:

    Ich Persönlich finde den umstieg auf VB .net und Co auch umständlicher als in VB 6 mal "schnell" etwas zu Programmieren.
    Ich verwende VB6 auch heute noch, um einfach mal einen kleinen Helfer zu Entwicklen und dann innerhalb eine VM auf XP, Win7 oder Win10 zu testen.

    Eine Abschaltung der Unterstützung würde vieles erschweren.

  5. Bolko sagt:

    Bei mir habe ich die veraltete Version 5.0.82.44 der Datei c:\Windows\SYSWOW64\MSVBVM50.DLL gefunden

    Die neueste verfügbare Version ist 5.2.82.44, aber davon gibt es 3 (drei) verschiedene Dateien mit unterschiedlichen Checksummen.
    Welche Datei ist die korrekte bzw wo ist der Unterschied?

    1.
    MSVBVM50.DLL
    Version: 5.2.82.44
    Sprache: U.S. English
    Checksumme SHA1: 178271eaf8c48384e206cbaebcbbc12030980410

    2.
    MSVBVM50.DLL
    Version: 5.2.82.44
    Sprache: U.S. English
    Checksumme SHA1: 639a57977b307fc7397cfa5c896bb2162d8a5f2e

    3.
    MSVBVM50.DLL
    Version: 5.2.82.44
    Sprache: U.S. English
    Checksumme SHA1: d78192df23921372d2325a49570f4075ff50b19

    Für die Datei c:\windows\syswow64\msvbvm60.dll ist die neueste Version 6.0.98.32
    Checksumme sha1: 3b4f649dd169d4d7a486482e015178210da70e9f
    Ist diese sha1 korrekt?

    Bei mir ist aber die alte Version 6.0.98.15 installiert.
    Warum wird sowas nicht automatisch upgedatet?

    Bei mir in der Systemsteuerung in der Liste der installierten Programme ist Visual Basic 5.0 gleich 3 mal installiert. Warum erkennen die Installer nicht eine bereits vorhandene Version?
    Nach dem Installationsdatum zu urteilen wurde jeweils eine VB5 zusammen mit den Spielen "Unreal Gold" und "Duke Nukem 3D" nstalliert, obwohl diese Spiele wohl kaum in Visual Basic programmiert worden sind.
    Was soll das?

    • Zocker sagt:

      "Warum wird sowas nicht automatisch upgedatet?"

      Wahrscheinlich aus demselben unbekannten Grund, warum die C++ Runtimes nicht über Windows Update aktuell gehalten werden.

      "Bei mir in der Systemsteuerung in der Liste der installierten Programme ist Visual Basic 5.0 gleich 3 mal installiert. Warum erkennen die Installer nicht eine bereits vorhandene Version?"

      Wahrscheinlich aus demselben Grund, warum bis zur Version 2013 zig C++ Rumtimes parallel installiert werden (Builds, Sprachversionen). Alles für je denselben C++ Jahrgang. Ab 2015 scheint das besser geworden zu sein. Jedenfalls muss ich da nicht andauernd unnötige Versionen wieder runterschmeißen.

    • Bolko sagt:

      Die neueste Version 5.2.82.44 der msvbvm50.dll wurde am 28.02.2014 veröffentlicht und hat die Checksumme sha1:
      639a57977b307fc7397cfa5c896bb2162d8a5f2e
      (das Datum der Datei kann allerdings trotzdem abweichen, je nachdem wo man sie runterlädt).
      Die anderen Dateien mit der selben Version 5.2.82.44 und anderen Checksummen sind älter.

      Eine Downloadadresse ("1. (2014-02-28)"):
      www[.]dlldownloader[.]com/msvbvm50-dll/#Operating-Systems-Compatible-with-the-Msvbvm50dll-File

      Datei kopieren im abgesicherten Modus oder offline in folgenden Ordner und dann installieren bzw registrieren mit:
      regsvr32.exe c:\windows\syswow64\msvbvm50.dll

      Die neueste msvbvm60.dll v6.0.98.32 kann man dort holen:
      www[.]dlldownloader[.]com/msvbvm60-dll/#All-Versions-of-the-Msvbvm60dll-Library
      (ebenfalls auf Platz "1." der Downloadliste)
      Checksumme sha1: 3b4f649dd169d4d7a486482e015178210da70e9f

      Datei kopieren im abgesicherten Modus oder offline in folgenden Ordner und dann installieren bzw registrieren mit:
      regsvr32.exe c:\windows\syswow64\msvbvm60.dll

      Bei Microsoft selber habe ich keinen funktionierende Downloadlink für diese neuesten Versionen gefunden. Da sind alle Seiten down, da aus dem Support raus.

      Die Datei vbrun60sp6.exe – "Visual Basic 6.0 Run-Time Redistribution Pack SP6" enthält auch nur die ältere Version v6.0.97.82 (statt v6.0.98.32).

  6. Wolfgang sagt:

    "Ich frage mich jedes Mal warum M$ das für ein schon lange totes Projekt immer noch macht."

    Wahrscheinlich überwiegt der Kosten-Nutzen-Faktor bei Microsoft. Letzten Endes gibt es nur die Zusage, dass die VB6-Runtime supportet wird. Das gilt nicht für die VB6-IDE. Das spürt man auch, wenn man die alte Anwendung unter neueren Betriebssystemen verwendet. Ganz so rund, wie zuletzt unter Windows 7 läuft sie leider nicht mehr. Aber sie ist produktiv noch immer gut verwendbar. Und das hat keinerlei negative Auswirkung auf die Programme, die damit erstellt werden. Hierbei hält die Microsoft-Zusage das was sie verspricht. Die nativ kompilierten Anwendungen laufen oft schneller wie aktuelle Just-in-time-kompilierte Software.

    Die meisten Medien sehen VB6 als das, was es um die Jahrtausendwende war als es offiziell für tot erklärt wurde. Wer die damalige Anwendung und die damit erstellten Programme mit heutiger Software vergleicht, vergleicht sprichwörtlich Pfeil und Bogen mit einem Biathlongewehr. Und er vernachlässigt dabei, dass sich die Sportgeräte heutiger Bogenschützen auch weiterentwickelt haben. Aus Sicht der VB-Classic-Anwender ergibt sich ein anderes Bild. Es gibt IDE-Erweiterungen wie z.B. CodeSMART- oder MZ-Tools, die die VB-IDE zu einem umfangreichen und modernen Werkzeug erweitern. Für die mit VB entwickelten nativen Anwendungen gibt es genauso Erweiterungen in Form von Steuerelementen wie z.B. die sev- oder CodeJock-Komponenten und Bibliotheken wie z.B. der RC6 von Olaf Scholz, der neben SQLite auch die Grafik-Bibliothek Cairo oder die neue WebView2-Runtime von Microsoft verfügbar macht. Damit habe ich nur eine Kleinst-Auswahl an existierenden Tools und Erweiterungen genannt. Wer auf heise.de oder sonst wo sich als Medienmacher bezeichnet und die Augen vor all diesen Tatsachen verschleißt, sollte eigentlich seinen Beruf hinterfragen.

    Eines kann ich abschließend mit Gewissheit sagen: I.d.R. sind die noch aktiven VB6-Programmierer sehr erfahrene Fachleute, die mit ihrem Werkzeug umgehen können und weit über den eigenen Tellerrand hinaus agieren. Die Not hat bei ihnen Fähigkeiten geschaffen, die "aktuelle" Entwickler nur noch mit Hilfe fertig gebackener Frameworks erreichen.

    • Wolfgang sagt:

      Entschuldigung: Seit wir den neuen Kanzler haben, tapse ich immer wieder in die Falle: Natürlich ist hier "Olaf Schmidt" und nicht "Olaf Scholz" gemeint! Das werden harte vier Jahre für mich und Olaf! Sorry Olaf!

  7. Smithman sagt:

    Willkommen im Jahr 2021. Bots lassen sich an der Grammatik und dem Satzbau, zum Glück, immer noch erkennen.

  8. Sebastian sagt:

    Wo ist denn das Problem?
    Das ist eine Wasserstandsmeldung.
    Die VB6 Runtime läuft wie jede andere 32Bit DLL munter weiter und das Windows Subsystem basiert weiter auf COM, ergo ist VB5/6 weiter dabei.

    Weil ich gerade klugschaizzen will möchte ich noch anmerken das VB6 keine OOP Sprache ist sondern nur OOP Merkmale anbietet. (Das war den VC++ Spezies damals immer ganz wichtig.)

Schreibe einen Kommentar zu Smithman Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.