cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
18 mars 2011 à 11:30
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
21 mars 2011 à 17:42
Bonjour à tous
Voila je récupere un pointeur d'une structure créé dans une DLL
J'arrive a lire cette structure en faisant plusieurs CopyMemory de suite et les attribuant a chaque branche de la structure.
Je voudrais savoir si il est possible, de poser en une seule fois les pointeurs dans la structure, sans avoir a passer par la valeur.
Public Type Complexe
String As String
Long As Long
Integer As Integer
End Type
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal Size As Long)
Dim VariableStructurer As Complexe, Phrase As String, PointeurDll As Long, PointeurElement As Long
ChDir App.Path
PointeurDll = CreationStructureStandard
CopyMemory PointeurElement, ByVal PointeurDll, 4
VariableStructurer.String = Space$(lstrlen(PointeurElement))
lstrcpy VariableStructurer.String, PointeurElement
CopyMemory VariableStructurer.Long, ByVal PointeurDll + 4, 4
CopyMemory VariableStructurer.Integer, ByVal PointeurDll + 8, 4
Phrase = Str(VariableStructurer.Integer) + Chr(13)
Phrase = Phrase + Str(VariableStructurer.Long) + Chr(13)
Phrase = Phrase + VariableStructurer.String
MsgBox Phrase, vbOKOnly, "Visual Basic - Reception d'une structure Standard de la DLL"
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 19 mars 2011 à 01:31
Bah non.
Tu as besoin de trois réponses, donc il faut questionner trois fois.
Mais bon, il te suffit de mettre cette recherche de pointeur dans une Sub et d'appeler la Sub.
Exemple "à la grosse"
Sub GetPointers(ByRef maVariableStructurer As Complexe, _
ByRef PointeurDll As Long)
' Remet ici ton code en remplaçant VariableStructurer par maVariableStructurer
End Sub
et appelles la sub en fournissant les deux infos nécessaires
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 20131 19 mars 2011 à 17:40
D'accord je croyais que y'avait un moyen plus simple pour retourner la structure entière en une seule fois.
Style pouvoir travailler directement les pointeurs et les copier dans les pointeurs de la structure, un truc comme ça
Je me renseignais aussi dans y'aurait plusieurs structures différentes, je serais donc obligé de créer plusieurs procédures (Une par type de structure)
Merci de ton aide et bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?