Visual C ++ 6.0 unter Windows 8

8

Visual C ++ 6.0 wird unter Windows 8 nicht unterstützt, aber wir haben einige ältere Apps, die noch mit Visual C ++ 6.0 kompiliert werden müssen. : - (

Es ist möglich, Visual C ++ 6.0 unter Windows 8 zu installieren, indem Sie die Option Datenzugriff - & gt; Änderungsoptionen - & gt; ADO-, RDS- und OLE DB-Provider . Siehe diese SU-Frage und dieser Thread . Sie müssen außerdem SP6 installieren.

Visual C ++ 6.0 funktioniert perfekt auf einem Computer, aber zwei andere können den Debugger nicht verwenden. Dieselbe Hardware, dieselbe Version von Windows, dieselbe Person bei der Installation, dasselbe Projekt. Es muss einen Unterschied geben ...

Auf den Computern mit dem Problem können Sie einen Unterbrechungspunkt setzen und der Debugger wird in die IDE einbrechen, aber wenn Sie versuchen, Schritt, Schritt oder auszuführen, stürzt der Code mit der Ausnahme Unhandled in EXENAME.EXE ab ( OLE32.DLL): 0xC0000005: Zugriffsverletzung .

Walter Oney meldet das genau gleiche Problem auf MSDN Foren , aber sie haben keine Lösung, da VC ++ 6.0 nicht unterstützt wird.

Da Visual C ++ 6.0 auf einem Win8-Computer läuft, gibt es anscheinend einen Weg, dies zu tun. Irgendwelche Ideen, was der Unterschied sein könnte?

    
Peter Olsson 24.01.2013, 19:12
quelle

5 Antworten

5

Das Deaktivieren von OLE RPC-Debugging (Tools / Optionen / Debug) funktioniert für mich (Windows 8 Pro 64 Bit, Visual C ++ 6.0 mit SP6). Diese Lösung wurde (später) in dem oben genannten MSDN-Forum-Thread vorgeschlagen.

    
user2706445 22.08.2013 08:05
quelle
1

Eine Falte - Ich hatte das gleiche Problem mit dem Visual C ++ 6.0 Debugger unter Windows 8.1. Aber ich konnte die RPC-Debug-Option unter der Option Tools / Options / Debug nicht finden, die in der obigen Antwort beschrieben wird. Stattdessen musste ich in den Registrierungseditor gehen und den RPC-Debug-Schlüssel löschen, der in dem oben erwähnten MSDN-Thread erwähnt wird (vielleicht war er dort, weil ich bereits spätere Versionen von Microsoft Visual Studio installiert hatte, bevor ich 6.0 installiert hatte). Der Debugger funktioniert jetzt gut und dank vorheriger Poster!

    
Stan Simmons 10.12.2014 13:20
quelle
0

Ich war schließlich in der Lage, VS 6 auf Win 8 und Win 10 zu arbeiten. Die grundlegenden Schritte waren diese:

  1. Erstellen Sie eine Dummy-Datei namens msjava.dll in \ Windows. (Z. B. "echo & gt; msjava.dll") Ohne diesen Schritt kann das VS 6-Installationsprogramm nicht sehr weit kommen.

  2. Installieren Sie VS 6 und SP 6.

  3. Benennen Sie MSDEV.EXE in etwas anderes um, z. B. MSDEVQ.EXE.

  4. Erstellen Sie eine Kompatibilitätsdatenbank für MSDEVQ, die das fehlertolerante Heap-Shim ausschließt. Ohne diesen Schritt ist das Debuggen eines Programms, das HeapAlloc usw. stark beansprucht, unerträglich langsam.

  5. Stellen Sie beim Debugging sicher, dass ein Haltepunkt ausgelöst wird, bevor Aufrufe an OLE32 auftreten können. Ich füge den folgenden Header früh im Hauptprogramm oder (für eine MFC-Anwendung) die InitInstance-Funktion ein:

X64DebugHack.h:

%Vor%
  1. Schreiben Sie eine Erweiterungs-DLL, die eine Schaltfläche "Stop Debugging" bereitstellt. Die Erweiterung muss Debug-Punkte suchen und zerstören, die in Win64 einen anderen Handle-Typ als in Win32 haben. Die Mechanik, die Erweiterung zu schreiben, sprengt den Rahmen dieses Forums, aber der Code, der die eigentliche Arbeit leistet, ist hier:

CCommands :: HelpAssistantKill:

%Vor%

Das fühlte sich an wie eine ziemlich heroische Anstrengung, aber ich hatte ungefähr eine Million Codezeilen, die auf VS 6 aufgebaut waren, und ich musste weiter arbeiten. Jetzt, da ich mir einen funktionsfähigen Makroprozessor für VS 2015 gebaut habe, kann ich eine Konvertierung dieser Anwendung vornehmen.

    
Walter Oney 22.09.2015 07:54
quelle
0

Das Problem tritt aufgrund inkompatibler "ADO-, RDS- und OLE DB-Provider" zusammen mit Visual C ++ 6.0 auf.

Bitte befolgen Sie die unten aufgeführten Schritte, um ADO-, RDS- und OLE DB-Provider zu deaktivieren und Visual C ++ 6.0 zu installieren -

1) Starten Sie die Installation wie gewohnt.

2) Klicken Sie auf Benutzerdefinierte Installation, wenn das Installationsprogramm nach dem Installationstyp fragt.

3) Klicken Sie auf Datenzugriff von verfügbaren Elementen und dann auf "Option ändern".

4) Deaktivieren Sie in einem neuen Fenster "ADO, RDS und OLE DB Provider" und klicken Sie auf "OK" (ignorieren Sie die Warnung).

5) Klicken Sie auf "Fortfahren", um mit der Installation fortzufahren.

6) Das Installationsprogramm friert während der Aktualisierung der Komponenten nicht ein und wird erfolgreich installiert.

7) Installieren Sie jetzt das Service Pack 'Vs6sp6' und es wird auch erfolgreich installiert.

    
ChJ 23.10.2015 10:28
quelle
0

Keine der obigen Antworten funktionieren für mich.

Lösung von Diese Seite behebt mein Problem.

  

Registrieren Sie die Datei ole32.dll erneut und prüfen Sie, ob sie hilft.

     
  1. Klicken Sie auf Start, geben Sie cmd in die Suche starten ein.

  2.   
  3. Klicken Sie mit der rechten Maustaste auf cmd und klicken Sie auf Als Administrator ausführen.

  4.   
  5. Geben Sie in der Eingabeaufforderung die folgenden Befehle ein, und drücken Sie die EINGABETASTE   nach jedem Befehl.

         

    takeown / f ole32.dll

         

    regsvr32 ole32.dll

  6.   
  7. Schließen Sie die Eingabeaufforderung, nachdem Sie die obigen beiden Befehle ausgeführt haben.

  8.   

Versuchen Sie, die Anwendung auszuführen, und überprüfen Sie, ob das Problem weiterhin besteht.

    
someone_ smiley 18.01.2017 03:47
quelle

Tags und Links