DLL Externes [Résolu]

jemty 3 Messages postés mardi 2 octobre 2007Date d'inscription 2 octobre 2007 Dernière intervention - 2 oct. 2007 à 11:38 - Dernière réponse : NHenry 14181 Messages postés vendredi 14 mars 2003Date d'inscription 24 mai 2018 Dernière intervention
- 24 juin 2010 à 21:46
Bonjour a tous,

Je travails actuellement sur un projet en VB 2005.
Ce projet est la creation d'une DLL qui elle-meme utilise des DLLs externes.
Et pour compliquer encore un peu l'histoire ... ce projet avait ete cree en.Net 2003 et est migre en .Net 2005.

La raison du passage de 2003 a 2005 est le soft (commercial) qui va utiliser cette DLL.
L'ancienne version s'appuyait sur le framework .Net de 2003, mais la nouvelle s'appuye sur 2005.
Vous suivez toujours ??

En migrant le projet, j'ai vire les references (migrees de 2003) aux DLL externes (qui proviennent du soft qui va utiliser ma DLL), et j'ai repris les references des DLL locales (celles de la nouvelle version du soft).
Apres avoir ajoute ces references, il y a des DLLs dans le repertoire .\obj\release de mon projet.

Ce qui me semble etrange, c'est que les DLLs de ce repertoire :
- N'ont pas exactement le meme nom que les DLLs originales
- N'ont ni la meme taille que la DLL originale ni la taille du tlb.

Qqun pourrait-il me dire si c'est normal et si oui, quel en est la raison ?

Merci bcp

Jemty
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
NHenry 14181 Messages postés vendredi 14 mars 2003Date d'inscription 24 mai 2018 Dernière intervention - 2 oct. 2007 à 14:09
3
Merci
Bonjour

Ces DLL permettent à .NET de faire le lien entre la couche .NET et les composants COM.

Elles doivent être dans le mme dossier que l'executable.

Dans les références de ton projet, tu as toutes ou parties des DLL qui te manquent ?

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site

Merci NHenry 3

codes-sources a aidé 87155 internautes ce mois-ci

Commenter la réponse de NHenry
NHenry 14181 Messages postés vendredi 14 mars 2003Date d'inscription 24 mai 2018 Dernière intervention - 2 oct. 2007 à 12:31
0
Merci
Bonjour

Exemples de nom ???

Si le nom ressemble à *.Interop.*.dll, c'est normal, .NET utilise les Interops pour accéder aux DLL COM.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
Commenter la réponse de NHenry
jemty 3 Messages postés mardi 2 octobre 2007Date d'inscription 2 octobre 2007 Dernière intervention - 2 oct. 2007 à 12:41
0
Merci
C'est bien ca oui.
Interop.[nom de la DLL].DLL

Peut-on me dire alors ce que represente cet Interop ? C'est juste un "lien" ou est-ce plus ?

J'avance un peu dans mon developpement, et je constate que je ne retrouve pas toutes les DLL externes dans l'object browser.
Chose qui a bienentendu pour consequence, que des types/classes/enums declares dans ces DLLs ne sont pas reconnues lors de la compil.
Y aurait-il une "astuce" pour que ca fonctionne "
(Il n'y avait pas le moindre souci en .Net 2003)

Merci
Commenter la réponse de jemty
jemty 3 Messages postés mardi 2 octobre 2007Date d'inscription 2 octobre 2007 Dernière intervention - 2 oct. 2007 à 14:26
0
Merci
Merci pour l'info.

Concernant les classes/types/.. manquants dans l'object browser mais dont les classes etaient presentes dans les references, je n'ai plus de problemes, elles sont maintenant toutes presentes.
J'ai supprime toutes les references, les ai recreees ... et par je ne sais quel miracle, maintenant tout est la.

La question qui reste en suspend est "Qu'est-qui a change entre la premiere fois que j'ai cree les references et la seconde ? "
Commenter la réponse de jemty
NHenry 14181 Messages postés vendredi 14 mars 2003Date d'inscription 24 mai 2018 Dernière intervention - 2 oct. 2007 à 14:59
0
Merci
Bonjour

L'heure et la date .....
L'informatique a ses mystères.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
Commenter la réponse de NHenry
guilleto 258 Messages postés jeudi 23 octobre 2003Date d'inscription 20 mars 2013 Dernière intervention - 24 juin 2010 à 12:15
0
Merci
Bonjour NHenry,

J'ai a peu près le même problème sous Visual Basic 2008 Express.

J'ai une DLL externe réalisée en VB6 qui est appelée par une application sous VB 2008 Express.

En code source cela fonctionne mais dès que je passe en EXE cela ne fonctionne plus, cela m'indique un problème sur l'appel de la DLL.
    Dim MaDll
    MaDll = New MonProjet.MaClasse

Le message indique 'Retrieving the COM class factory for component with CLSID {...} failed due to the following error : 800ac352.

J'ai bien les fichiers interops.nomDLL.DLL dans le même dossier que l'EXE.
J'ai (a priori) toutes les références dans le projet.

Je ne comprends pas, aurais-tu une piste de recherche ?

Par avance merci

Olivier
Commenter la réponse de guilleto
NHenry 14181 Messages postés vendredi 14 mars 2003Date d'inscription 24 mai 2018 Dernière intervention - 24 juin 2010 à 13:31
0
Merci
Bonjour,

A voir ton code, tu n'as pas mis Option Strict à On.

Tu as essayer de réenregistrer (désenregistrer, puis enregistrer) ta DLL ?
Tu as essayer de refaire la dépendance de ton projet (supprimmer la référence vers la DLL puis la remettre, dans les props de ton projet) ?

Si oui pour les 2, je ne vois pas, dsl.

Mon site
Commenter la réponse de NHenry
guilleto 258 Messages postés jeudi 23 octobre 2003Date d'inscription 20 mars 2013 Dernière intervention - 24 juin 2010 à 13:41
0
Merci
En effet, je n'ai pas mis Option Strict On car j'ai des variables qui sont mixtes (texte et valeur numérique).

Réengistrer la DLL : Oui mais directement sans désinstaller, je ne me souviens plus comment on fait.

Pour la dépendance dans le projet, je l'ai enlevée et remise un certain nombre de fois et ... RIEN !
Je ne fais peut-être pas comme il faut.

Olivier
Commenter la réponse de guilleto
NHenry 14181 Messages postés vendredi 14 mars 2003Date d'inscription 24 mai 2018 Dernière intervention - 24 juin 2010 à 21:46
0
Merci
Bonjour,

Désinstalle le DLL et réinstalle-la.
Ensuite, refais le lien dans ton projet.

Pour tes variables mixte, utilises une autre méthode que de mettre Option Strict à Off.
Par exemple, créer une classe pour gérer cela.

Je vois mal la cause de l'erreur si ce n'est un problème d'enregistrement.

Mon site
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.