Ponteur en vb.net [Résolu]

Signaler
Messages postés
3
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
10 juin 2010
-
Messages postés
36
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
6 février 2011
-
Bonjour

je code en vb sous studio 2010 evaluation.
je n'arrive pas a déclarer les variables de cette fonction activeX.

Public Overridable Sub ImageGet(ByRef pBuffer As Byte, ByVal ulMaxSize As UInteger, ByRef pulGetSize As UInteger)

en c++ ça donne:
unsigned char *buf = new unsigned cha[1024*1024];
if( buf )
{
unsigned long bufsize = -1;
m_CamCtrl.ImageGet( buf, 1024*1024, &bufsize );
.......
......
}

merci d'avance
polux

3 réponses

Messages postés
150
Date d'inscription
dimanche 17 mai 2009
Statut
Membre
Dernière intervention
25 mai 2012

VB.Net Ne Supporte Pas Les Pointeurs. Il Faut Utiliser Un Garbage Collector Hanlde (GCHandle), et tu fait l'allocation de ton object. tu fait un pin, utilise l'adresse de l'object, puis FREE LE GChandle. Je ne Suis pas totalemnt sur, mais je crois que ça doit marcher.
Messages postés
3
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
10 juin 2010

Merci pour ta reponse mais avec le niveau que j'ai en vb.net je ne comprends pas tout.
je veux juste declarer en vb.net l'equivalent de cette declaraton en c++:
unsigned char *buf = new unsigned char[1024*1024];

j'ai essayé avec intptr mais rien n'y fait ,je n'arrive pas à passer le pointeur à la fonction imageget(byref pbuffer as byte,ByVal ulMaxSize As UInteger, ByRef pulGetSize As UInteger)

re merci d'avance

polux
Messages postés
36
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
6 février 2011

ta définition de fonction me parait bizarre...
pbuffer est un pointeur sur un octet ou sur un buffer d'octets ?

dans ce dernier cas, tu peux essayer :
ByRef pBuffer As Array dans ta fonction
ou bien
ByRef pBuffer As Object

ou bien encore
ByVal pBuffer As IntPtr