Thomas13012
Messages postés35Date d'inscriptionsamedi 12 septembre 2015StatutMembreDernière intervention 8 octobre 2016
-
4 août 2016 à 17:59
Thomas13012
Messages postés35Date d'inscriptionsamedi 12 septembre 2015StatutMembreDernière intervention 8 octobre 2016
-
6 août 2016 à 20:47
Bonjour,
J'ai besoin d'aide. Merci d'avance.
Lorsque que j'exécute mon projet, ou que je régénère la solution, j'obtiens l'erreur suivante :
Erreur 29 Impossible de résoudre la référence COM "fcfb3d2e-a0fa-1068-a738-08002b3371b5" version 6.0. L'importateur de bibliothèques de types a détecté une erreur lors de la vérification de type. Essayez d'importer sans membres de classe.
La référence dont il est question correspond à la référence "Visual Basic objects and procedures"
Il semblerait que ce soit une erreur lors de la vérification d'un type, mais je ne sais pas à quel endroit
dans le code ni comment y parvenir.
Quelqu'un peut-il m'aider ?
Merci à vous.
Thomas
Thomas13012
Messages postés35Date d'inscriptionsamedi 12 septembre 2015StatutMembreDernière intervention 8 octobre 20161 5 août 2016 à 11:21
Voici la copie d'écran :
Thomas
Whismeril
Messages postés18630Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention29 septembre 2023629 5 août 2016 à 11:49
hum ça n'aide pas.
Par contre l'utilisation de Goto est très très très fortement déconseillé depuis VB1.... Peut être même avant.
En .Net on gère les erreurs avec Try Catch
vb95
Messages postés3416Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 5 août 2016 à 11:52
bonjour Thomas13012
Plusieurs remarques suite à ta copie d'écran
1) en VB Net on n'utilise plus On Error Goto ( on préfère les structures de code Try - Catch - End Try )
2) Je vois que tu explores des partitions logiques d'après le bout de codes Les dimensionnements en Integer risquent de provoquer des dépassements de capacités ( surtout si c'est pour représenter le nombre d'octets d'une partition ou le nombre de secteurs de celle-ci )
3)Tu as 36 avertissements : as-tu mis Option Strict et Option Explicit en propriété pour ton projet et supprimer la référence à Microsoft Visual Basic dans les références du projet ( cette référence assure la compatibilité avec VB 6 : si on fait de VB NET autant le faire à fond et ne pas utiliser des bouts de code VB 6)
Whismeril
Messages postés18630Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention29 septembre 2023629
>
vb95
Messages postés3416Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023 5 août 2016 à 12:55
Salut vb
nos messages se sont croisés ;)
vb95
Messages postés3416Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165
>
Whismeril
Messages postés18630Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention29 septembre 2023 5 août 2016 à 18:43
bonsoir Whis
Vous n’avez pas trouvé la réponse que vous recherchez ?
Whismeril
Messages postés18630Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention29 septembre 2023629 5 août 2016 à 11:51
Dans tes références est-ce que tu as désactivé Visual Basic (ça importe des instruction vb6, d'une part ça mélange torchons et serviettes et d'autre part ça ne marche pas toujours)?
Est ce qu'Option Strict et Option Explicit sont à On?
Thomas13012
Messages postés35Date d'inscriptionsamedi 12 septembre 2015StatutMembreDernière intervention 8 octobre 20161 5 août 2016 à 13:23
Merci à vous tous pour vos commentaires.
Pour l'interception d'erreurs par Goto, je sais bien qu'en Vb.Net il est préférable d'utiliser Try Catch - End Try. Mais là je récupère du code Vb6 que je dois nettoyer par la suite. J'ai bien Option Strict et Option Explicit à On. Je n'ai pas encore décocher la référence à Microsoft Visual Basic car j'attends de nettoyer mon code. En fait, pour tout dire, tout marchait bien jusqu'à ce que j'intègre le composant Keysta32.ocx pour rester compatible dans un 1er temps avec le code précédent. J'ai ensuite supprimer toute référence à ce contrôle (MicroHelp Key State Control) en utilisant à la place My.Computer.Keyboard.CapsLock(NumLock...) et GetKeyState(TOUCHE_INS). Mais l'erreur persiste. Voilà, vous savez tout.
Thomas13012
Messages postés35Date d'inscriptionsamedi 12 septembre 2015StatutMembreDernière intervention 8 octobre 20161 5 août 2016 à 18:50
C'est exactement ce que j'ai fait, mais l'erreur persiste.
Thomas
vb95
Messages postés3416Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 5 août 2016 à 19:09
Quelques pistes
1) en VB 6 les tableaux commencent à 1 ( sauf si on met Option Base à 0) alors qu'en VB Net ils commencent toujours à 0
2) un Long VB 6 devient un Integer en VB Net
VB6 -----> VBNET
integer----> short
long --------->integer
Un code VB6 n'est jamais réutilisable tel quel en VB Net
Il faut se dire : comment faire en VB Net pour faire une instruction VB6 ou comment faire en VB Net pour avoir le même fonctionnement en VB 6 pour un bloc de code bien défini .
Et encore c'est se passer de pas mal de nouveautés puissantes de VB Net
Thomas13012
Messages postés35Date d'inscriptionsamedi 12 septembre 2015StatutMembreDernière intervention 8 octobre 20161 5 août 2016 à 19:21
Vos différents commentaires m'ont mis sur la voie.
J'ai seulement supprimer les références "Visual Basic objects and procedures" et "Visual Basic runtime objects and procedures" et mon projet fonctionne de nouveau.
Il suffisait de prendre le message d'erreur au pied de la lettre.
Merci
Thomas
Whismeril
Messages postés18630Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention29 septembre 2023629 Modifié par Whismeril le 6/08/2016 à 12:30
Ce qui voudrait dire qu'en créant le nouveau projet comme je te l'avais suggéré tu avais remis ces références??
Thomas13012
Messages postés35Date d'inscriptionsamedi 12 septembre 2015StatutMembreDernière intervention 8 octobre 20161 6 août 2016 à 15:21
Bonjour,
Je n'ai pas crée un nouveau projet.
Mais ces références ont dû se rajouter quand j'ai intégré le composant de MicroHelp Key State (Keysta312.ocx). Quand l'erreur est apparue, j'ai supprimé ce composant et j'ai nettoyé les références relatives à MicroHelp en ignorant les références "Visual Basic objects and procedures" et "Visual Basic runtime objects and procedures" dont j'ignorais la présence. L'erreur persistant, j'ai demandé de l'aide. Puis, en relisant le message d'erreur, j'ai pensé à vérifier la référence, après l'avoir identifiée par sa propriété "Identité" (fcfb3...), et je l'ai supprimée avec sa voisine (runtime). Et tout s'est remis à fonctionner correctement. A l'avenir, je vais donc éviter les anciens contrôles de mon code VB6 précédent, et utiliser les APIs correspondantes et classes VB.Net (dans ce cas "GetKeyState(TOUCHE_INS)" et My.Computer.Keyboard.CapsLock(NumLock...) qui donnent entière satisfaction, comme vous m'avez suggéré d'abandonner toute référence à VB6.
Encore merci pour votre soutien et votre support.
Thomas13012
Messages postés35Date d'inscriptionsamedi 12 septembre 2015StatutMembreDernière intervention 8 octobre 20161 6 août 2016 à 20:47
En fait, c'est ce que j'avais fait en construisant mon projet avant que l'erreur ne survienne. Puis après l'apparition de cette erreur, j'ai reconstruit le projet de la même façon et l'erreur est revenu dès que j'ai intégré le composant de MicroHelp. Et puis la suite vous la connaissez, en me mettant sur la piste de l'incompatibilitté des références VB6... $&@ de Keysta312.ocx :).