Probleme references VB6

aciclb Messages postés 12 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 18 avril 2012 - 7 avril 2009 à 16:55
aciclb Messages postés 12 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 18 avril 2012 - 9 avril 2009 à 12:12
Bonjour,

Nous sommes confrontés à un problème de taille:
Pour pallier à un problème de Bug sous VB6 avec les déclaration tardives sur les "object " (Dim titi as object --> erreur la méthode ~ de l'objet ~ a échoué de temps en temps, notemment sous TSE ...) nous avons fait des déclarations anticipées sur nos "object" (Dim titi as dll.moduleclasse) en declarant dans les references des projets les dll concernées pas les declarations ....
Et là nous avons un probleme de taille, il semblerait que si la dll qui sert de reference est recompilée, toutes les dll qui l'appelaient ne fonctionnent plus ...
il faut les recompiler pour que cela refonctionne ... --> dans un projet qui contient 300 dll : l'angoisse. --> avec les clients à mettre à jour derriere ... ingerable ...
De plus quand nous reprenons les projets d'un poste à l'autre nous avons parfois "Manquant" dans les reference des dll alors que la dll est bien presente et au bon endroit.

Avez vous deja rencontré ce probleme ? Avez vous des idées ?

Merci,
SEB.

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 avril 2009 à 17:58
Salut
Hélas oui, une DLL est référencée par son nom mais aussi par sa version.
Donc, si une DLL est recompilée, il faut l'enlever puis la redéclarée dans les références du projet qui l'utilise.
Il me semble me souvenir qu'il existe une option "compatibilité" dans la compilation : Faudrait regarder si cela correspond à ce problème.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
aciclb Messages postés 12 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 18 avril 2012
8 avril 2009 à 09:01
Bonjour,
Merci pour ta réponse. L'option "Compatibilité" n'y fait rien ...

Si quelqu'un a une autre idée je prend !!

Merci,
SEB.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 avril 2009 à 18:22
Re
Non, pas d'autre idée.
Ce que tu peux faire, c'est , comme tu l'as dit, déclarer tes variables en liaison tardive As Object.
En mettant ta DLL en référence dans le projet, tu profiteras quand même de l'intellisence (l'apparition des méthodes et propriétés après la saisie d'un point après le nom d'un objet)

Je me rappelle avoir eu le même problème avec le FileSystemObject :
Si je déclarais le Scripting Runtime en tant que référence directe, j'avais des problèmes sur les machines qui ne possèdaient pas la même version de cette DLL.
Je me suis rabattu sur la déclaration tardive.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
aciclb Messages postés 12 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 18 avril 2012
9 avril 2009 à 12:12
ok ... ça ne sent pas très bon ...

en déclaration tardive nous avons des problèmes avec le bug connu "la méthode ~ de l'objet ~ à échoué" surtout sous TSE....

Merci,
SEB.
0
Rejoignez-nous