#pgramma comment et DLL

loicus Messages postés 46 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 3 mai 2008 - 1 mai 2008 à 19:09
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 3 mai 2008 à 21:20
Salut,

J'ai juste une petite question très simple.
Mon projet utilise un grand nombre de librairie.  Ce grand nombre de fichier fait qu'il devient relativement difficile de trouver des fichiers dans le repertoire.
J'aimerais donc mettre toutes les fichier .dll dans un repertoire /DLL

Le problème est que si je fais cela, le programme crie au démarage car il en trouve pas les dll.
Y a t'il un quelconque moyen de lui specifier le path des dll?

Avec un #pragma de préférence.

Merci d'avance
Loic

5 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
2 mai 2008 à 13:54
Je ne sais pas du tout si ceci marche mais tu peux toujours essayer :
#pragma comment(linker,"/LIBPATH:...")

sinon une autre possibilité : enregistrer les dlls avec regsvr32 au moment de l'installation.
0
loicus Messages postés 46 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 3 mai 2008
3 mai 2008 à 10:09
j'ai pas mal cherché hier...

Mais il n'y a malheureusement pas de solution très élégantes...
Et j'ai pas tres envie d'utiliser regsvr32, car je ne veux pas creer une procédure d'installation...

merci quand même pour la réponse
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
3 mai 2008 à 10:19
dernière solution pas du tout élégante : charger toi-même les dlls avec LoadLibrary(), mais dans ce cas tu pourras pas utiliser les libs.
0
loicus Messages postés 46 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 3 mai 2008
3 mai 2008 à 18:30
Salut Juju12,

qu'est ce que tu veux dire par : "tu pourras pas utiliser les libs" ???

Loic
0

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

Posez votre question
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
3 mai 2008 à 21:20
ben quand tu utilises les libs t'as pas besoin de t'occuper de charger les dlls, récupérer les adresses des fonctions...
mais comme pas trouvé comment indiquer au compilateur de regarder tel dossier à l'exécution je proposais donc LoadLibrary qui permet un chargement dynamique (avec spécification du chemin de la dll); mais faut alors faire tout le code d'initialisation qui va avec.
exemple d'utilisation (avec la fonction Beep de kernel32) :
#include

"Windows.h"
typedef BOOL(
__stdcall*PFCT_BEEP)(DWORD dwFreq,DWORD dwDuration); // définition type pointeur sur fonction Beep()
PFCT_BEEP myBeep; // pointeur fonction
__int32

main(
void)
{
HMODULE hKernel32=LoadLibrary(TEXT(
"C:\\Windows\\System32\\Kernel32.dll")); // chargement de la dll
myBeep=(PFCT_BEEP)GetProcAddress(hKernel32,
"Beep"); // récupération de l'adresse de la fonction
myBeep(440,2000);
FreeLibrary(hKernel32);

return 0x0;
}
Comme tu peux voir, c'est assez lourd, néanmoins utile parfois.
C'est tout de même bizarre qu'on ne puisse pas spécifier de dossiers à fouiller, il doit forcément y avoir une option...
0
Rejoignez-nous