Mackila | 'Lu,
J'essaie de me coder quelque chose qui serait capable de me charger dynamiquement les DLLs présentes dans son répertoire. Le problème c'est que mes LoadLibrary me renvoient tous une erreur 2 (file not found, ou un truc du genre), alors que justement je récupère le nom de la DLL à coup de FindFirstFile/FindNextFile...
J'ai lu tout un tas de trucs (MSDN) sur les ordres de recherche des DLL, mais étant sous Windows XP, le répertoire de l'application fait normalement partie du lot...
J'ai auusi essayé de coller ma DLL à un endroit fixe (genre c:\madll.dll) et d'appeller un LoadLibrary("c:\\madll.dll" ), mais toujours la même chose (ca foire, et GetLastError() à 2).
LoadLibrary ca n'a pourtant pas l'air compliqué à invoquer, comme fonction (juste une chaine à filer en paramètre...)
Le code (dégraissé du blabla et de la gestion d'erreur) :
Code :
- // main()
- rechercheDesDLL = FindFirstFile( "*.dll", &infosFichier ) ;
- do
- {
- afficheInfosDLL( infosFichier.cFileName ) ;
- }
- while( FindNextFile(rechercheDesDLL, &infosFichier ) ) ;
- FindClose( rechercheDesDLL ) ;
- // afficheInfosDLL(const char * const nomDuFichier)
- laDLL = LoadLibrary(nomDuFichier) ;
- if ( laDLL == NULL )
- {
- printf("Chargement de la DLL OK.\n" ) ;
- FreeLibrary( laDLL ) ;
- }
- else
- {
- printf("Le chargement de %s a echoue (%d).\n", nomDuFichier, GetLastError() ) ; // <- ici tout le temps 2, alors que le fichier avait justement été trouvé, pour se retrouver ici...
- }
|
|