Bonjour/bonsoir joyeux programmeurs.
Je suis en train de me battre contre- enfin, avec - un programme C utilisant des API, et que je veux transposer en VB6. Et là, je tombe sur un bec !
Un certain appel va me retourner un pointeur sur un buffer, soit que la fonction me le construise à la demande, soit que ec soit un buffer système. Mais à l'appel, je dois mettre un pointeur NULL !
Je viens de trouver un tutoriel (ici même, d'ailleurs) qui dit que, même si, dans la déclaration de la fonction, le pointeur est spécifié "byref", dans l'appel de la fonction, on doit écrire "byval 0&" : je comprends parfaitement bien la logique : il faut bien que l'argument soit "0", et pas l'adresse d'une zone d e8 octets contenant des "0".
Mais comment je récupère le buffer, après ?
Exemple :Ca ne peut pas être ça, il me manque le moyen de récupérer le GUID. mais je ne connais pas le moyen de résoudre ce problème en VB6.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 type GUID Data1 as long Data2 as integer Data3 as integer Data4[8] as byte end type public declare function LaFonctionDeLAPI lib "LAPI" (byref LeGUIDvoulu as GUID, byref Toto as Objet) as long ' J'arrive ici avec l'objet préparé dans MonObjet Err = LaFonctionDeLAPI(byval 0&, MonObjet) ...
A l'aide !
Merci d'avance.
AMIcalement.
Partager