Problème de chargement de DLL

Résolu
tophque Messages postés 2 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 18 novembre 2005 - 18 nov. 2005 à 09:10
tophque Messages postés 2 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 18 novembre 2005 - 18 nov. 2005 à 10:00
Bonjour,

Je travaille sur un programme multi-thread. Je dois charger une dll. Que l'on soit en mode Debug ou Release, le problème est identique. Si je lance mon application par visual (Ctrl+F5), pas de problème. Par contre, si je double clique sur le fichier exe directement, le handle renvoyé est NULL...

voici le bout de code:
...........................................................................................
hDllInstance = AfxLoadLibrary("./KVBPlug.dll");
if (hDllInstance == NULL)
{
AfxMessageBox("Erreur d'ouverture de KVBPlug.dll",MB_ICONQUESTION,MB_APPLMODAL);
SendMessage(WM_CLOSE);
return TRUE;
}
......................................................................................

Voila une partie de l'aide de msdn france:


LoadLibrary essaie de retrouver la DLL en effectuant la même séquence de recherche que celle suivie pour la liaison implicite. Si le système ne trouve pas la DLL ou si la fonction de point d'entrée retourne la valeur FALSE, LoadLibrary retourne NULL. Si l'appel à LoadLibrary spécifie un module de DLL déjà mappé dans l'espace d'adressage du processus appelant, la fonction retourne simplement un handle de la DLL et incrémente le décompte de référence du module.


Je n'ai pas accès au code de la dll.
J'ai déja essayé de placé la dll dans le system32, dans le même répertoire... rien ne change.

Merci d'avance.

Debut Christophe

[mailto:debut.christophe@skynet.be debut.christophe@skynet.be]

2 réponses

tophque Messages postés 2 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 18 novembre 2005
18 nov. 2005 à 10:00
j'ai essayé plusieurs solution:

hDllInstance = AfxLoadLibrary("./KVBPlug.dll");
hDllInstance = AfxLoadLibrary("KVBPlug.dll");
hDllInstance = AfxLoadLibrary("C:\\....\\....\\KVBPlug.dll");

en plaçant la dll à différents endroit et rien n'y fait...

Debut Christophe

[mailto:debut.christophe@skynet.be debut.christophe@skynet.be]
3
ricky78 Messages postés 126 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 11 juillet 2006
18 nov. 2005 à 09:21
bonjour
juste une idee.
Tu es sur de devoir mettre ./ devant le nom de ta DLL dans le load library.
Generalement je mets que le nom de ma dll et je la place ou se trouve l'exe.

TOCHE
0
Rejoignez-nous