J'ai jamais tester ca, je l'avais trouver avec des docs pour des fonctions API bien special :
- Pour une variable de Type String :
Declare Function Lstrcpy Lib "kernel.dll" (ByVal lpString1 As String, ByVal lpString2 As String) as Long
Dim ptr as Long ' Pointer to I
Dim I as integer ' I itself
ptr = Lstrcpy(I,I) ' assign ptr to point to the address of I
- Pour n'importe quelle Type de variable :
Declare Function VarPtr Lib "kernel.dll" Alias "Lstrcpy" ( _
lpVar1 As Any, _
lpVar2 As Any) as Long
An Example :
Option Explicit
Type Foo
x as Integer
End Type
Sub Main ()
Dim I as Integer
Dim S as String
Dim F as Foo
Dim ptr as Long
ptr = VarPtr(I,I) ' Get the address of 'I'
ptr = VarPtr(ByVal S, ByVal S) ' Must use ByVal keyword w/ string
ptr = VarPtr(F, F) ' Works with type declarations too
-------------------------------
Réponse au message :
-------------------------------
J'ai jamais tester ca, je l'avais trouver avec des docs pour des fonctions API bien special :
- Pour une variable de Type String :
Declare Function Lstrcpy Lib "kernel.dll" (ByVal lpString1 As String, ByVal lpString2 As String) as Long
Dim ptr as Long ' Pointer to I
Dim I as integer ' I itself
ptr = Lstrcpy(I,I) ' assign ptr to point to the address of I
- Pour n'importe quelle Type de variable :
Declare Function VarPtr Lib "kernel.dll" Alias "Lstrcpy" ( _
lpVar1 As Any, _
lpVar2 As Any) as Long
An Example :
Option Explicit
Type Foo
x as Integer
End Type
Sub Main ()
Dim I as Integer
Dim S as String
Dim F as Foo
Dim ptr as Long
ptr = VarPtr(I,I) ' Get the address of 'I'
ptr = VarPtr(ByVal S, ByVal S) ' Must use ByVal keyword w/ string
ptr = VarPtr(F, F) ' Works with type declarations too
mahojul
Messages postés27Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention 6 mars 2009 17 févr. 2009 à 11:58
Bonjour,
Lorsque j'exécute le code, voici le message qui me vient :
Run-time error '453':
Can't find DLL entry point Lstrcpy in kernel.dll
J'ai bien fait attention de mettre la DLL kernel.dll et kernel32.dll dans le même répertoire que mon projet.
Voici le code que j'ai mis :
1) Dans un module qui est utilisé pour les déclarations :
Public Declare Function VarPtr Lib "kernel.dll" Alias "Lstrcpy" (lpVar1 As Any, lpVar2 As Any) As Long
Type Foo
x As Integer
End Type
2) Sur clic d'un bouton :
Dim lCounter as long
lCounter = 0
ptr = VarPtr(lCounter, lCounter) ' Get the address of lCounter
Est-ce que vous auriez une petite idée pour m'aider un peu ? ... Merci vraiment d'avance pour votre aide ... Pour informations, je travaille avec VB6 ...