[R] DllOpen DllCall DllClose VS simple DllCall

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
K4rl3oN
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 20 avr. 2011 15:42
Status : Hors ligne

[R] DllOpen DllCall DllClose VS simple DllCall

#1

Message par K4rl3oN »

Bonjour à tous,
j'aimerai connaitre la difference entre (par exemple) un:

Code : Tout sélectionner

Func _TimeStamp()
    Local $Ret
    Local $CrtDll = DllOpen('CrtDll.dll')
    If $CrtDll <> -1 Then
        $Ret = DllCall($CrtDll, 'long:cdecl', 'time', 'ptr', 0)
        If Not @error Then Return $Ret[0]
        DllClose($CrtDll)
    EndIf
EndFunc
et un:

Code : Tout sélectionner

Func _TimeStamp()
    Local $Ret
    $Ret = DllCall('CrtDll.dll', 'long:cdecl', 'time', 'ptr', 0)
    If Not @error Then Return $Ret[0]
EndFunc
et quelle méthode est la plus conseillée si on est devant un code où l'appel à la dll se fait une fois toutes les 25 ms?
Modifié en dernier par K4rl3oN le mer. 30 oct. 2013 10:25, modifié 1 fois.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] DllOpen DllCall DllClose VS simple DllCall

#2

Message par PandiPanda »

Bonjour,
avez vous lu l'aide concernant DllCall() ?
► Afficher le texte
Comme il est dit, lorsque vous faites appel à DllCall(), il va de lui meme s'occupé du chargement et du "déchargement" de la dll à CHAQUE appel de la fonction.

Si vous avez besoin de l'utiliser toute les 25 ms, il est peut être judicieux d'utiliser un DllOpen()
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
K4rl3oN
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 20 avr. 2011 15:42
Status : Hors ligne

Re: [R] DllOpen DllCall DllClose VS simple DllCall

#3

Message par K4rl3oN »

Merci :D
Donc c'est pareil, mais vaut mieux faire appel à DllOpen() quand on est confronté à une utilisation massive de la dll
Répondre