begin process at 2008 07 06 15:42:06
1 205 627 membres
195 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : #pgramma comment et DLL [ Divers / Général ] (loicus)

#pgramma comment et DLL le 01/05/2008 19:09:33

loicus
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

Re : #pgramma comment et DLL le 02/05/2008 13:54:03

juju12

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.


Re : #pgramma comment et DLL le 03/05/2008 10:09:15

loicus
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

Re : #pgramma comment et DLL le 03/05/2008 10:19:55

juju12
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.

Re : #pgramma comment et DLL le 03/05/2008 18:30:00

loicus
Salut Juju12,

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

Loic

Re : #pgramma comment et DLL le 03/05/2008 21:20:44

juju12
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...




Classé sous : fichier, nombre, dll, grand, pgramma

Participer à cet échange

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS