Pointeur d'un tableau à 2 dimensions vers DLL C++ [Résolu]

Signaler
Messages postés
34
Date d'inscription
jeudi 18 février 2010
Statut
Membre
Dernière intervention
23 juillet 2010
-
Messages postés
34
Date d'inscription
jeudi 18 février 2010
Statut
Membre
Dernière intervention
23 juillet 2010
-
Bonjour,

Voilà, j'ai un exe principal en VB.net (VS2008 Express) et une DLL en C++ (Dev-C++).

Je dois passer en paramètre à une fonction de la DLL un pointeur sur un tableau à 2 dimensions (des UShort) créé dans mon programme principal.

Et bien c'est pas évident

Je pensais qu'en utilisant simplement ByRef au lieu de ByVal, ça se ferai tout simplement, mais non... Du coup j'essai de voir ce que je peux faire avec IntPtr mais je n'arrive à rien...

Cela vient-il du type de tableau (2D et UShort) ou de VB.net qui n'aime pas les pointeurs ?
De VB et C++ qui n'interprètent pas de la même façon le tableau ?
Ou est-ce tout simplement impossible ?

Merci beaucou !

2 réponses

Messages postés
34
Date d'inscription
jeudi 18 février 2010
Statut
Membre
Dernière intervention
23 juillet 2010

Bon, ben je suis passé sur 1 dimension et ça fonctionne...

Je me console en me disant que le traitement est plus rapide

Pourquoi j'ai l'impression de parler tout seul ?
Messages postés
34
Date d'inscription
jeudi 18 février 2010
Statut
Membre
Dernière intervention
23 juillet 2010

J'ajouterai que maintenant, j'arrive à lire le tableau, mais seulement la première ligne, pas le reste... (et en plus en ByVal...)

Voici les déclarations :

EXE :
- Declare Function get_focus Lib "main.dll" (ByVal Buffer(,) As UShort) As Double
- Public imagedata(MAX_WIDTH - 1, MAX_HEIGHT - 1) As UShort
- Gradient = get_focus(imagedata)

DLL :
- get_focus(unsigned short * tab)

Ça semble bien être lié à la 2D...
Mais que faire ? PLEASE HELP

Merci bien !