Utilisation de DLL et de différents dossiers

Signaler
Messages postés
51
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
2 octobre 2008
-
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
-
Bonjour,

J'ai créé une DLL et son utilisation est possible via un programme EXE.
Le problème est que cette DLL est dans un dossier et l'EXE dans un autre.
Le programme plante quand il essaye d'appeler une fonction contenue dans cette DLL.
Que faut-il faire pour régler le problème (sachant que je veux laisser l'arborescence telle qu'elle est) ?
Faut-il mettre le dossier de la DLL comme "SYSTEM" ? Si oui, comment le fait-on ?


Merci d'avance

7 réponses

Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
si ta dll est activeX ou .Net  il faut l'enregistrer sur le systeme
sinon il faut qu'elle soit dans le path
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut,

place la DLL dans c:\Windows\system32
J'en mettrai pas ma main à couper, mai me semble, que si tu fais un regsvr32.exe Nom.dll
et que tu en fais réferzence dans ton projet, ça passera

@++

le mystérieux chevalier,"Provençal, le gaulois"
Messages postés
51
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
2 octobre 2008

Bonsoir,

merci pour vos réponses, il s'agit en effet d'une DLL .NET donc le regsvr32 n'est pas possible :S.

Pour ce qui est de la mettre dans le "c:\windows\system", c'est pas vraiment ce que je souhaites car il faudra que je vérifie qu'aucune DLL porte le même nom que la mienne et je ne souhaite pas modifier le nom de mes DLLs.

Dans le path, oui mais lequel ? le "PATH" normal ? ou alors des "SYSTEMROOT" ?

Merci d'avance
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
si c'est une dll .Net tu ouvres le projet de l'exe ou tu veux l'utiliser,
tu ouvres les propriétés de ton projet , onglet réferences,
tu cliques sur ajouter et tu sélectionne ta dll (onglet Browse)
la seule restriction c'est que le path vers ta dll doit être de moins de 255 carractères
Messages postés
51
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
2 octobre 2008

Bonsoir,

J'ai du mal m'exprimer. Le projet EXE a dans ses références la DLL que j'ai créée.
Lors du développement de l'EXE, la DLL est copiée dans le répertoire "debug" de l'application.
Donc l'EXE et la DLL sont dans le même répertoire.

Ce que je souhaite, lors du déploiement de mon application est d'avoir ma DLL dans un répertoire et l'EXE dans un autre (sans pour autant le mettre dans "system32" comme indiqué ci-dessus).

L'erreur résultant de l'exécution de la fonction contenue dans la DLL à partir de l'EXE (dans un autre dossier) est : "Impossible de charger le fichier ou l'assembly".

Donc je voudrais pouvoir dire à mon EXE où se trouve la DLL.
Je pensais à "regsvr32" ou équivalent "regasm" mais cela ne marche pas (ou alors je m'y prends mal) pour donner la "visibilité" à mon EXE.
Je sais lors du déploiement la position de la DLL et de l'EXE, n'y a-t-il pas un moyen de dire à l'EXE où est la DLL ?

En espèrant avoir été clair.
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20
salut,

dans le fichier de configuration de l'exe, tu peux utiliser la directive ...

ShareVB
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
pour ne pas la mettre dans System32 ,
mets la dans My

.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData

Au contraire des chasseurs qui ne sont pas des lapins, les pollueurs, eux, sont des ordures

/B>