J'ai un ocx développé en c++ qui attend un paramètre en double* (tableau de double). Dans vb.net, la fonction attend un double byref. Je n'arrive pas à envoyer l'adresse de ma variable (bref à créer un double*), comment faire?
Version imprimable
J'ai un ocx développé en c++ qui attend un paramètre en double* (tableau de double). Dans vb.net, la fonction attend un double byref. Je n'arrive pas à envoyer l'adresse de ma variable (bref à créer un double*), comment faire?
???
dim var as double ?
En fait je veux passer un tableau de double à une fonction qui attend du double byref
En C par exemple, j'aurais:
double val[2] = {10.1, 2.3};
mafonction(val);
où mafonction est definie comme ceci:
void mafonction(double *ptr);
en vb, j'ai:
void mafonction(double byref ptr)
comment faire pour lui passer l'adresse du tableau?
vb.net ne permet pas de manipuler directement des pointeurs ...
après tu peux essayer avec la classe marshal mais j'y crois que moyennement
Bonjour
Je comprend pas trop, le ByRef ne marche pas ?:?
Si t'as une fonction :
Et que tu l'appellesCode:
1
2
3 Function MaFonction (ByRef MaVariable as Object) ....
Ca passe bien la référence de la variable MonObject (référence=pointeur), Non?Code:
1
2
3 Dim MonObject as Object MaFonction(MonObject)
Je vois pas trop le problème ;) ou je me goure completement :aie:
Bon courage en tout cas
en C on peut manipuler des pointeurs
c'est une chose encore différente des byref à priori, vu qu'on donne l'adresse ou se trouve les données
sinon tu peux peut etre créer une fonction en C++ qui attends un double byval et qui appelle l'autre fonction en passant le pointeur ...
Bon, merci des réponses, je crois effectivement que le plus simple est de changer mon OCX et de le transformer en byval au lieu de byref