cs_Mia
Messages postés36Date d'inscriptionjeudi 27 juin 2002StatutMembreDernière intervention15 septembre 2009
-
9 sept. 2009 à 14:53
cs_Mia
Messages postés36Date d'inscriptionjeudi 27 juin 2002StatutMembreDernière intervention15 septembre 2009
-
15 sept. 2009 à 16:34
Bonjour
J'ai créé une dll en vb 2008 que j'aimerais utiliser dans une applicaion vb6.
J'essaie mais pas moyen de l'ajouter dans les "Références" du projet.
J'ai fais le test en l'appelant à partir d'une application vb2008 et ça marche parfaitement.
Je me demande donc si cela est toujours possible?
cs_Mia
Messages postés36Date d'inscriptionjeudi 27 juin 2002StatutMembreDernière intervention15 septembre 2009 9 sept. 2009 à 15:34
Merci pour la réponse rapide malheureusement ça ne marche pas.
J'ai bien mis le flag "Inscrire Com pour interop".
par contre je vois dans les options avancées de compilation, un point "Framework cible" et je n'y vois que les frameworks 2, 3 et 3.5. cela voudrait dire que ce n'est pas compatible avec vb6???
Mia
Vous n’avez pas trouvé la réponse que vous recherchez ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 9 sept. 2009 à 15:38
ta dll sera toujours de l'interpreté.
il te faut toujours cibler nu framework donné qui sera requis par le client.
y'a juste une couche supplémentaire pour qu'un client COM (VB6 dans ton cas) sache l'interface proposée par ta classe ; pour que ta dll puisse être exploitée par ce client.
cs_Mia
Messages postés36Date d'inscriptionjeudi 27 juin 2002StatutMembreDernière intervention15 septembre 2009 9 sept. 2009 à 15:51
Je n'ai pas de fichier Tlb généré, et lorssque je veux le générer avec regasm, je reçois le message suivant :
RegAsm Error: Could not load file or assembly 'Regcode .....' or one of its dependecies. The system cannot find the specified file. Or le chemin d'acces est correct.
cs_Mia
Messages postés36Date d'inscriptionjeudi 27 juin 2002StatutMembreDernière intervention15 septembre 2009 9 sept. 2009 à 15:54
Je te remercie pour ton message, j'avais déjà trouvé certaine de ces infos mais il semblerait que ce soit une dll vb2008 qui pose prob , pfffff...
"Salut,
tiens, quelques liens qui pourrons peut être t'aider. J'avoue, j'ai juste survolé
(de très haut...) mais ça semble aller dans ton sens.
- Real Stories of .NET Interop: C#, VB.NET and VB6
- Using the .NET Library and XML in VB6
- How to call a Visual Basic .NET or Visual Basic 2005 assembly from Visual Basic 6.0
- COM Interop Exposed "
cs_Mia
Messages postés36Date d'inscriptionjeudi 27 juin 2002StatutMembreDernière intervention15 septembre 2009 15 sept. 2009 à 13:53
Salut, c encore moi
Voilà, après avoir réussi à créé ma DLL, j'ai fais fonctionner mon application sous XP et là tout va bien, mais lorsque je veux l'exécuter sous vista, je reçois un message d'erreur "Can't create object ...."
Je pensais que c'était parce que la dll ou le .Tlb n'était pas enregistré mais j'ai beau essayer de l'enregistrer (en tant qu'admin), je n'y parviens pas. Je reçois le message suivant : "le module a été chargé mais le point d'entrée dllregisterserver est introuvable".
cs_Mia
Messages postés36Date d'inscriptionjeudi 27 juin 2002StatutMembreDernière intervention15 septembre 2009 15 sept. 2009 à 15:51
Je vais t'expliquer la situation:
J'ai une ancienne application vb6 et j'ai créé ce que j'appelle une DLL en vb2008 pour exécuter l'envoi d'email particuliers. Dans mon applic VB6, j'ajoute une référence à cette dll. Après avoir fait la déclaration d'un objet à partir de cette dll, j'assigne différents champs faisant partie de cette dll et puis, j'exécute une methode de cette dll.
Sur mes pc de production (un XP et un Vista), j'ai un lien vers l'exe de l'app VB6 qui se trouve sur un server. L'application vb6 fonctionne très bien sur ces 2 pc.
Maintenant j'ai ajouté la dll et le .tlb sur le server (dans le répertoire de l'application vb6, j'ai aussi essayé de les mettre dans le répertoire System32) afin de profiter de l'envoi des mails. Sur mon pc XP, tout se passe correctement, par contre sur le pc Vista, je reçois le message "Can't create object".
Je n'ai aucun manifest.
J'ai créé la dll avec VB2008 en sélectionnant "creation d'une classe com" et ensuite je la génère. Et je parviens à l'utiliser correctement sous xp.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 15 sept. 2009 à 15:56
tlb ? inutile... ca sert a rien de le déployer.... utile au développement uniquement.
le message "dllregisterserver non trouvé..." indique que ta dll n'est PAS à enregistrer. Elle ne contient pas d'infos a enregistrer dans la base de registres indiquant les classes et autres qu'elle expose. D'ou la necessité pour le dev d'utiliser un .tlb.
sur Xp, un RegSvr ne doit pas non plus fonctionner.
avec un exe, il te faut un manifest... Il faut que windows puisse faire el lient entre le ProgId de ta classe et le fichier.dll