IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Problème entre VB6 et Windows 8.1


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 122
    Points : 49
    Points
    49
    Par défaut Problème entre VB6 et Windows 8.1
    Bonjour,
    J'ai développé une application en VB6 et j'ai voulu l'installer sur un ordi sous Windows 8.1.
    J'ai copié dans System32 (la machine est 32 bits) les composants .DLL et .OCX utilisés par l'application.
    Le problème est que, quand j'ouvre l'appli, on me dit que la plupart de ces composants sont soit inexistants soit mal enregistrés !!!!
    Et pourtant ils y sont !

    Est-ce un problème inhérant à Windows 8.1 ?

    Merci d'avance pour la réponse

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    les copier n'est pas suffisant, il faut ensuite les enregistrer (tout au moins ce qui en ont besoin) dans la base de registre avec regsrv32.

    C'est pour cela que pour déploiyer un application VB6, et une application en général d'ailleurs, on ne se contente pas de copier l'exe, mais on fait un pack d'installation (setup) avec des outils tel que InnoSetup (si possible ne pas utiliser celui intégré à VB6, il a tendance à faire un peu n'importe quoi avec les fichiers systèmes depuis W2000).
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 122
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    J'ai suivi votre conseil et ai créé un SetUp.exe avec InnoSetup.
    L'installation s'est effectuée sans problème et apparemment tous les composants ont été installés dans System32.
    Mais en lançant l'application, voici les différents messages que j'ai obtenu :

    Erreur d'exécution 339 Le composant MSFLXGRD.OCX ou une de ses dépendances n'est pas correctement enregistré : un fichier est absent ou incorrect
    la même chose pour
    MSSTDFMT.OCX et COMDLG32.OCX et MSCOMCT2.OCX
    Après vérification dans System32, il s'avère que tous ces composants ont bien été installés par InnoSetup !!!!

    Que faut-il faire ?

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Pour être sûr de l'inscription de tous les composants(OCX) et bibliothèques(DLL), applique cette METHODE que j'ai développée et qui marche très bien.
    Tu peux sélectionner plusieurs fichiers (ocx et/ou dll) en même temps. Une explication détaillée se trouve dans le post en question.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Vérifie aussi l’exécution de ton logiciel en mode compatibilité XP SP3 voire XP SP2, voire "Exécuter en tant qu'administrateur", VB6 étant une vieille technologie pas forcément adaptée aux os modernes. Si certains logiciels développés en VB6 fonctionnent sans problème, il peut arriver que d'autres aient besoin du mode de compatibilité.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 122
    Points : 49
    Points
    49
    Par défaut
    Effectivement, en modifiant la compatibilité avec XP (SP 3), ça avait l'air de fonctionner jusqu'à ce que j'obtienne le message suivant :

    Erreur d'exécution '713' La classe n'est pas enregistrée Le fichier suivant doit être installé sur votre machine MSSTDFMT.DLL

    A partir de là on sort du programme et pourtant MSSTDFMT.DLL fait partie des composants installés par InnoSetup !!

  7. #7
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Et si tu execute cette commande, ça résoud le problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REGSVR32 C:\windows\System32\MSSTDFMT.DLL
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 122
    Points : 49
    Points
    49
    Par défaut
    Sous Windows 8.1 comment fait-on ?

  9. #9
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    j'ai pas de W8.1 sous la main ce soir, mais toujours pareil, Menu Demarrer (click droit dessus je crois avec W8) et exécuter
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  10. #10
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 122
    Points : 49
    Points
    49
    Par défaut
    Mon problème est que l'ordi que j'utilise pour tester est une tablette sous Windows 8.1 et que ladite tablette est tactile !
    Alors comment faire un clic droit quand on n'a pas de clavier ?

  11. #11
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Aucune idée.

    Peut-être en maintenant appuyé 2-3 sec, je sais pas.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  12. #12
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 122
    Points : 49
    Points
    49
    Par défaut
    Merci du conseil. C'est ce qu'il fallait faire !

Discussions similaires

  1. Problème routage entre deux LAN Windows server 2003
    Par ziz2005 dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 18/08/2011, 13h07
  2. Problème avec le caractère de fin de ligne entre linux et windows
    Par Dosseh dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 28/07/2009, 14h04
  3. [ODBC] Problème entre client windows, serveur windows
    Par Mascotte dans le forum Installation
    Réponses: 13
    Dernier message: 13/09/2006, 12h15
  4. Problème entre Windows et Linux
    Par technical dans le forum Langage
    Réponses: 4
    Dernier message: 09/08/2006, 21h23
  5. [Réseau] Problème entre X-DOS et Windows 98
    Par FLCEOAP dans le forum Développement
    Réponses: 1
    Dernier message: 15/05/2005, 23h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo