Cet article à été lu 882 fois

[Tutoriel] Résoudre les problèmes de référencement d’OCX (ou DLL) de Visual Basic 6 sous Windows 10

Tweet Si vous avez suivie la procédure d’installation de Visual Basic 6 +SP5 +SP6, ou allez pouvoir ouvrir votre (ancien) projet. Pour ma part j’ai rencontré deux problèmes avec les […]


Si vous avez suivie la procédure d’installation de Visual Basic 6 +SP5 +SP6, ou allez pouvoir ouvrir votre (ancien) projet.

Pour ma part j’ai rencontré deux problèmes avec les OCX « COMCTL32.OCX » et « MSCOMCTL.OCX ».

Voici en images toutes les étapes pour faire fonctionner mon application « NetOXE » écrit en Visual Basic 6 sous Windows 10.

  • Lancer Visual Basic 6, puis ouvrez votre projet

  • Premier message d’erreur « Impossible de charger MSCOMCTL.OCX »
  • Pas grave, continuer à charger le projet, cliquer sur [OK]

  • Deuxième message d’erreur « Impossible de charger COMCTL32.OCX »
  • Toujours pas grave, continuer à charger le projet, cliquer sur [OK]

  • On insiste, cliquer sur [OK] pour tous les messages d’erreur comme celui ci-dessous…

  • Vérifier que les composants de votre projet sont bien cochés, par ma part il ne l’était pas !
  • Pour COMCTL32.OCX, il s’agit de « Microsoft Windows Common Controls 5.0 (SP2)
  • Pour MSCOMCTL.OCX, il s’agit de « Microsoft Windows Common Controls 6.0 (SP6)

  • Fermer Visual Basic et cliquer sur [Oui] pour enregistrer votre projet.

  • Ouvrir de nouveau Visual Basic et votre Projet
  • Une nouvelle erreur… pas de chance !
  • L’erreur de compilation est plus difficile à comprendre, il faut faire une recherche sur internet pour savoir dans quel fichier OCX se trouve la méthode « .ListSubItems ».
  • Et bien elle se trouve dans « COMCTL32.OCX », encore elle !

  • Pour ma part j’ai résolu le problème en remplaçant l’OCX présente dans le répertoire « c:\Windows\SysWow64 » par celle du correctif « VB60SP6-KB2708437-x86-FRA« .
  • Cette OCX est beaucoup plus récente que celle installé par Visual Basic +SP5 +SP6.

  • Après avoir remplacé le fichier « COMCTL32.OCX », nouveau message d’erreur « Bibliothèque d’objets non enregistrée ».
  • Clique sur [OK]

  • Pour prendre en compte une OCX remplacé manuellement dans le répertoire « c:\Windows\SysWow64\ », il faut dé enregistrer l’OCX de la base de registre puis la réenregistrer.
  • Tout d’abord il faut lancer l’invité de commandes en mode administrateur.
  • Sous Windows 10 par un clique droit en bas à droite de l’écran.

  • Par défaut il ouvre la fenêtre dans le répertoire « c:\Windows\system32 »
  • Se positionner dans le répertoire « c:\Windows\SysWow64\ »
  • Puis taper la commande « regsvr32 /u comctl32.ocx »
  • Une fenêtre vous informe de la prise en compte de la commande, clique sur [OK]

  • Cette fois si on va enregistrer notre nouvelle OCX.
  • Taper la commande « regsvr32 comctl32.ocx »
  • Une fenêtre vous informe de la prise en compte de la commande, clique sur [OK]

  • Ouvrir Visual Basic 6 et votre projet
  • Pour ma part plus de message d’erreur 😉
  • Je peux lancer l’application qui fonctionne normalement, et faire de modification du code…

Avant d’en arriver là j’ai quand même bien galéré… Mais bon ça valait le coup 😉

Après avoir écrit cet article j’ai fait une nouvelle recherche sur Google, j’ai trouvé un exécutable qui permet de remplacer les deux OCX (COMCTL32.OCX et MSCOMCTL.OCX). Les fichiers sont encore plus gros (en taille), mais dans mon cas pas besoin de tester vue que ça marche bien comme ça !!!

Voici le lien : Contrôles communs Microsoft Visual Basic 6.0

Vous devriez aussi lire ces articles

About Erwan

L’homme est un être paresseux qui utilise son intelligence pour éviter le travail inutile. - http://www.zapwallpaper.fr - http://www.cmdvb.fr