Page 1 sur 1

[R] DllOpen DllCall DllClose VS simple DllCall

Posté : mer. 30 oct. 2013 03:09
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?

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

Posté : mer. 30 oct. 2013 09:02
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()

Re: [R] DllOpen DllCall DllClose VS simple DllCall

Posté : mer. 30 oct. 2013 10:29
par K4rl3oN
Merci :D
Donc c'est pareil, mais vaut mieux faire appel à DllOpen() quand on est confronté à une utilisation massive de la dll