Declaration ou loadlibrary ??? [Résolu]

Signaler
Messages postés
406
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
4 septembre 2013
-
Messages postés
406
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
4 septembre 2013
-
Bonjour a tous

J'utilise LoadLibrary pour obtenir le handle d'un DLL chargée afin de verifier son bon chargement.

Mais une question me taraude .....Est ce pareil, au niveau ressoureces et rapidité de faire appel a une fonction style :




Declare
FonctionDansMaDll .......



Public Function machin
 LoadLibray
 x =  FonctionDansMaDll (......)
 FreeLibrary
EndFunction

Ou bien seulement de faire appel avec le declare ???

DeclareFonctionDansMaDll .......
 x =  FonctionDansMaDll (......)



Quels sont les inconvenients et avantages de ces deux methodes, hors mis l'histoire du handle de la DLL
Merci de vos conseils, car j'utilise beaucoup de ces fonctions et notament dans des boucles, et je ne voudrais pas mettre a genoux Windows !!!

Bonne journée

2 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
L'emploi de LoadLibrary() permet de faire tourner un prog sur un OS sans savoir au préalable si la fonction désirée y est présente. En cas de retour NULL, on adapte le comportement.
Pour ce qui est de la rapidité, le linkage statique est un peu plus rapide car la résolution des adresses est effectué en 1 seule faois par le loader system.


Dans tous les cas, en VB6 comme quasi tout autre interprété, l'adresse de la fonction sera toujours trouvée par LoadLibrary() au moment de sa première utilisation, que tu le codes ou fait par la VM sera idem.

ciao...
BruNews, MVP VC++
Messages postés
406
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
4 septembre 2013
1
Merci de ta reponse BRUNEWS
Je croyais bettement que loadlibrary chargeait toute la library en memoire et que le declare allait directement a la fonction ....
Quel benet je fais.

Donc pas de grande difference au niveau memoire !!!
Encore merci de cette precision.