Fichier TLB non pris en compte

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 25 août 2009 à 16:07
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 27 août 2009 à 11:34
Salut à tou(te)s

A mon tour, un petit souci VB6 :
J'ai créé une appli "serveur" en EXE ActiveX.
Il me génère bien un fichier TLB (et VBR) à chaque compilation.
Maintenant, je voudrais commencer mon application "client".
Je vais donc dans les références pour l'associer à mon serveur :
- Je ne vois pas mon appli serveur (TLB) dans la liste des réf disponibles
- Si je parcoure pour aller pointer vers le TLB, l'IDE l'accepte bien (pas d'erreur), mais il ne le charge pas pour autant.

Auriez-vous déjà rencontré ce problème ... et la solution qui va avec ?

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

5 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
25 août 2009 à 17:13
PS : je ne peux m'en passer puisque mon serveur a des "Events", une déclaration en Object ne fonctionnerait pas

J'ai essayé :
- reboot
- En ouvrant le fichier VBP dans NotePad, j'ai remarqué que la syntaxe déclarative des références utilisait le symbole # pour séparer ses champs !
Quelle drôle d'idée : le # est un caractère autorisé dans le noms de fichier/répertoire et bien sûr, c'est mon cas !
Donc :
- renommage des répertoires
- nettoyage de la base de registres
- reboot

Bon, je pensais avoir mis le doigt dessus, mais ...

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
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
25 août 2009 à 17:27
Ouf, j'ai trouvé
En fait, avant de me lancer dans mon projet, il y a quelques semaines, je m'étais créé une petite maquette Client-Serveur ActiveX, dans un autre répertoire.
Là, j'ai créé mes applis et, manque de chance, bien que les noms de programmes soient différents, j'ai utilisé le même nom de Classe publique.
Du coup, la base de registres (BdR) avait mémorisée une ClassId pour le TypeLib de ma Class.
Je refabrique un autre EXE avec ce même nom et ... la classe était toujours rattachée à l'ancien programme, d'où le conflit.

Alors j'ai nettoyé manuellement la BdR et supprimé les ClassId en trop
+ recompilation dans un répertoire sans #
+ bricolé le fichier VBP pour ajouter manuellement ma référence
et la référence est maintenant bonne.

Qqun sait commun supprimer proprement une ClassId ou doit-on se bringballer les casseroles ?
(remarque, cela explique l'embompoint de la BdR avec l'âge !)

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 août 2009 à 18:39
pas de solution miracle a l'engorgement de la BDR.

je compile rarement mes dll tant que leur design ne me sieds pas a fond (vivent les groupes de projets)



Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 août 2009 à 10:51
salut Jack,

pareil que Renfield, une fois compilé c'est toujours une casse tête, avec nettoyage BDR manuel pour éviter tout souci
(quoi que regcleaner est pas en général)

bien vu pour le #

[hr]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
27 août 2009 à 11:34
Merci pour ces confirmations
Hélas, je n'ai pas d'autre choix que de compiler à chaque modif car mon logiciel Client est un EXE et VB refuse de créer un groupe (avec le serveur) pour cette raison.

Ah lala, que d'soucis, mon pauv' Bobby !
0
Rejoignez-nous