10
votes

"Type défini par l'utilisateur non défini" Erreur dans VB 6 sous Windows 7

J'utilise Windows 7 et mon projet est dans VB 6.0. Je reçois des erreurs pendant que je suis exécutant mon programme. Il montre l'erreur:

Type défini par l'utilisateur non défini.

Voici mon code: xxx

Comment puis-je résoudre cette erreur?


2 commentaires

Comment vous attendez-vous à nous de déboguer un problème comme celui-ci sauf si vous postez du code? Plus précisément, la partie le débogueur met en évidence pour vous comme contenant l'erreur.


Sélectionner une boîte à outils privéeBar1_buttonclick (bouton byval comme mscomptllib.button) Sélectionnez Bouton de cas.Key "Trace": appel Mntrace_click Case "Snrplot": appel Mnsnrplot_click ": appel Mnskyplot_click Case" NMEA ": appel MNNMEA_CLICK Case" Navigation ": Appel mnnavigation_click case "Survey": appel Mnsurvey_click case "Pause / Démarrage": appelez mnpause_click cas "Enregistrer": appelez mnsave_click case "Imprimer": appel Mnprint_click Case "Offline": appelez mnoffline_click End Select Sub Sub


3 Réponses :


0
votes

On dirait que vous manquez une référence à une bibliothèque d'objets.

(avez-vous exécuté-le sans erreurs ailleurs?)


2 commentaires

désolé je ne peux pas te chercher. pouvez-vous expliquer?


Je pense que Cody Gray l'a très bien expliqué ci-dessus :-)



29
votes

Le compilateur met en évidence automatiquement la première ligne de la déclaration de fonction pour vous lorsque l'erreur apparaît. Cela signifie que l'erreur se produit quelque part dans cette ligne. Parfois, ce n'est pas aussi utile que vous le souhaitez, mais dans ce cas, il réussit à vous dire beaucoup.

Plus précisément, le seul "type défini par l'utilisateur" (vraiment, le seul "type" du tout) qui apparaît dans la déclaration de fonction est mscomptllib.button . Ce que le message d'erreur du compilateur vous dit ici est qu'il ne sait pas ce qu'est un mscomptllib.button est. Il suppose donc que c'est un type "défini par l'utilisateur" car il ne sait souvent pas ce que l'utilisateur parle. : -)

De toute façon, le correctif est simple: vous devez dire au compilateur quel mscomptllib.button est. Dans ce cas, il devinait mal en supposant qu'il s'agisse d'un type défini par l'utilisateur. C'est en fait un bouton fourni dans la bibliothèque Microsoft Windows Common Controls. Pour dire à VB 6 sur ce contrôle, vous devez ajouter le composant correspondant à votre projet. Suivez ces étapes:

  1. dans le menu "Projet", sélectionnez "Composants".

  2. Dans la boîte de dialogue qui apparaît, faites défiler environ 2/3 de la liste des MS. Placez une vérification par «Microsoft Windows Common Commands Controls 6.0» et «Microsoft Common Controls-2 6.0». (Ne vous inquiétez pas si vous avez une désignation de service de service différente.)

    Composants de boîte de dialogue dans VB 6 IDE

  3. Cliquez sur le bouton OK. Si vous êtes rapide, vous verrez des contrôles supplémentaires ajoutés à votre boîte à outils. Ce sont les contrôles fournis par les bibliothèques de composants que vous venez d'ajouter. Parmi ces contrôles, on appelle une touche .

    Enfin, essayez de compiler et d'exécuter votre projet à nouveau - tout devrait être bien cette fois, car le compilateur sait maintenant ce que le type mscomptllib.button est. Si vous ne le faites toujours pas, c'est un bouton qui apparaît sur votre barre d'outils. La commande de la barre d'outils est fournie par la bibliothèque Commandes commune et comprend un type qui définit un bouton individuel apparaissant sur cette barre d'outils.


1 commentaires

Après avoir suivi ces étapes, je reçois la bibliothèque d'objets manquante. Comment puis-je supprimer ça?



0
votes

Je pense que vous venez de copier et collé ce code d'ailleurs. Normalement, si vous voulez faire référence à MscomCllib, vous effectuerez normalement les étapes indiquées par Cody Grey ici avant de pouvoir accéder à la bibliothèque de types.


0 commentaires