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"
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
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)