Que signifie “la Méthode '~' de l'objet '~' a échoué” signifie?
Je suis en train de lancer un héritage d'application VB6 sur mon bureau (il ne dispose pas d'une interface utilisateur, étant une ligne de commande app), et quand je le fais, je reçois un message indiquant
Run-time error '4099':
Method '~' of object '~' failed
Cela ne signifie rien pour moi; quelqu'un aurait-il une idée de ce qui va mal?
- quelle est la demande? Ne s'appuient sur aucune bibliothèque externe? Pensez-vous avoir le code source?
- J'ai le code source, ce qui est une bonne chose. Il est arrivé à être de différentes versions de l'appui aux bibliothèques, certains datant de sept ans, d'autres beaucoup plus récentes, si elles avaient été construites à la même époque, à l'origine. Il n'y avait pas eu de changement au code sous-jacent, mais différente de la compile évidemment produit suffisamment de différences pour la cause de l'erreur. Je suis sûr que ça n'aide pas, que l'application s'exécute sur un poste de travail et la dll est exécuté sur un serveur. J'ai recompilé tous les 4 bibliothèques de base, puis l'application elle-même avec ces frais de dll, et qui a fait le tour.
Vous devez vous connecter pour publier un commentaire.
Qui peuvent se produire lors de l'appui aux bibliothèques (dll ou ocx) ne sont pas enregistrés correctement ou que les versions des bibliothèques installées sont différents et incompatibles avec la version de l'application a été compilée à l'encontre de l'origine.
Assurez-vous que toutes les bibliothèques dépendantes sont enregistrés et la bonne version.
Vous pourriez avoir à recompiler l'application pour le faire fonctionner avec des versions plus récentes de l'appui aux bibliothèques.
Ce message se produit lorsqu'une application Visual Basic 6 rend une interface COM appel qui lève une exception (c'est à dire renvoie un échec
HRESULT
). Dans ce cas, VB6 sauts à un gestionnaire d'exception (comme défini parOn Error
). Dans le gestionnaire d'exception il est visible d'un objetErr
qui contient les détails de l'exception.Si l'objet implémente
ISupportErrorInfo
, et il n'a effectivement erreur de prise en charge de l'info, et il a établi erreur d'infos, puisErr.Description
prend la chaîne qui est dans l'erreur info définie par l'objet. Sinon,Err.Description
prend la chaîneMethod ~ of ~ failed
.IDK si d'autres versions de VB faire la même chose; ou si le message est également défini dans les autres scénarios, en plus de celui que je viens de décrire.
Une autre cause peut être lors de l'utilisation de l'automatisation, des petites incompatibilité de version de Bureau:
J'ai un héritage VB5+application d'Accès (que je suis dans le processus de réécriture en Delphi et le remplacement de tous les automation désordre à nettoyer OpenDocument génération) qui a bien fonctionné sur certains systèmes, et a donné l'erreur sur les autres.
Cette erreur se produirait lors de la génération d'une feuille de calcul Excel, et semblait inoffensif (sauf l'ennui et que ce serait montrer une douzaine de fois le risque de l'utilisateur en cliquant sur "Annuler" dans le milieu), comme si toujours en cliquant sur "Ignorer" tout a fonctionné comme prévu.
J'ai finalement trouvé la cause était la façon de faire Office 97 a été installé:
L'erreur doit s'afficher si l'installation de Office 97 de la séquence est:
mais pas si il a été installé avec:
Faire une désinstallation /réinstallation avec SR1 d'installation sur les systèmes affectés résolu le problème.
J'ai VB6 SP6 et je peux reproduire ce comportement. Dans un nouveau projet, placez ce code dans un formulaire. Le projet s'exécute normalement avec la touche F5. Cliquez-droit sur le projet et sélectionnez Publier ensuite Construire des Sorties. Cela génère la message d'erreur.
Maintenant commenter les quatre dernières lignes:
Vous n'avez plus l'erreur et les sorties sont construit normalement. J'ai été rapidement en ajoutant une gestion d'erreur pour localiser l'origine d'une panne et
If False Then
est parfaitement valide. Le MDAC vérificateur dit que tout était ok et un redémarrage ne résout pas le problème.If False Then
est valide, maisIf
sansEnd If
ne l'est pas. Votre premier extrait ne serait même pas compiler.Pour une VB6 programme qui est exécuté comme une application en ligne de commande il y a une étape supplémentaire requis après la compilation: le VB6 de l'éditeur de liens doit être exécuté sur le fichier exécutable pour le définir comme un programme de console:
Échec pour ce faire sera de donner le
Method '~' of object '~' failed
d'erreur lorsque le programme est exécuté.Selon mon expérience, c'est à cause de Microsoft Access Version.
Mon programme a été faite dans MS Office 2007 et installé la nouvelle version de MS Office. C'est pourquoi cette erreur apparaît.
J'ai eu ce Problème pendant un certain temps.
J'ai cherché une Réponse et Cette Page web a été partie Supérieure de la Recherche.
Il Y A Un Moment.
J'ai désinstallé Office 2000 de la Barre d'outils
Désinstallé Visual Basic 6 et Enlevé tout Mais pas MSDN
Réinstallé Visual Basic 6
Mais j'ai toujours Eu Mon presse-papier de l'Enregistreur de Programme en Visual Basic 6 a été l'Exécution de
et Trouvé Que c'Était L'Erreur
Sans que la Course, je n'ai pas l'Erreur
Méthode de "~" Objet "~" Échec
Lors du Démarrage de Visual Basic 6 IDE
Après L'Exécution du presse-papiers de Code VB6 Programme avec Ctrl F5
Démarrer Avec Compilation Complète
et Guérie de Compiler les Erreurs dans le Code
Mais Toujours Avec Problème de Chargement de VB6 IDE
Jusqu'À Ce Que J'Ai Mis L'Option Explicite Au Travers De Toute La Presse-Papiers De Code
L'exception d'Un Module Qui a été trop Grand pour Terminer Rapidement
Mais Surtout dans le Module de Classe
Que certains Avaient des Variables non Déclarées
et Alors Que Guéri, Il
C'est Ma Solution Personnelle et leur Contribution à Ce Journal Web
Une mise à Jour Supplémentaire et d'Éditer Ici
Après avoir lu les 3 Fils de Ce Sujet
L'un de Ici sur le presse-papiers
https://stackoverflow.com/a/8577499/5226365
et j'ai repéré le Bug de Nouveau à un Nouveau Test
Comme C'Est Mon Presse-Papiers De Code
et j'ai été Gêné à VB6 EDI en Utilisant le presse-papiers à Charge Surtout Quand
Réalisation d'un presse-papiers Dans le Code
et j'ai fait Le Code d'Interception de VB6 IDE de Chargement d'une image Bitmap
et restaurer ce qui était là Avant
Maintenant, je dois Être Plus Attentif dans mon Code et Attendez que l'Écran de démarrage pour Finir avec "Findwindow"
Je Pense que j'ai résolu Maintenant
J'ai un rédigées par des professionnels dans le presse-papiers de Code Source que je Pense Utilise l'API
Que j'ai Chassé vers le Bas et n'Ont pas Encore utilisé
Il Semble une Douleur dans Mon Code Que je Recherche
Pour Tester Si La Valeur Est False
Pour le presse-papiers-ed de l'Objet dans le Concepteur de Formulaire
Afin de Ne pas être Estropié ou Interférer Avec Mon Code de Programme
Mon presse-papiers le Code de Programme est le Seul de Longue Durée Programme de Gauche que je dirige Toujours
Pour les presse-papiers à Partir de Pages Internet
et Il Faut /Logs Clip de Photos images de Captures d'écran et les Choses de Stocker la Date et l'Heure des Fichiers
Je souhaite que j'en Savais Plus sur la Façon d'Obtenir de Glisser et Déposer des informations
Espère Que Cette Aide
2015 14 Août de 8h à 9h