Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Puntatore a memoria
Forum - Visual Basic 6 - Puntatore a memoria

Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 23:52
Domenica, 09/09/2007
Come e' possibile utilizzare un puntatore in VB6, come in C ?

Mi serve per passarlo ad una funzione di una DLL ...

Grazie

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 16:28
Lunedì, 10/09/2007
Scusami xò nn ho capito bene quello che vuoi fare, cmq, nonostante credo di sapere che nn sia la cosa che cerchi tu, se ti può interessare ti posso dire come far cambiare il puntatore del mause in una form.

Ultima modifica effettuata da GrG il 10/09/2007 alle 16:31
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 16:32
Lunedì, 10/09/2007
Testo quotato

Postato originariamente da GrG:

Scusami xò nn ho capito bene quello che vuoi fare,



Beh ... non e' che lo possa spiegare diversamente ...

Testo quotato


cmq se ti può interessare ti posso dire come far cambiare il puntatore del mause in una form.



E' una battuta? :)  

Un puntatore e' un indirizzo di una locazione di memoria ... non c'entra con quello del mouse ...

(e comunque si scrive mouse)

Ultima modifica effettuata da gantonio il 10/09/2007 alle 16:33
PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 18:08
Lunedì, 10/09/2007
Non credo che in VB esistano i puntatori come in C.
Comunque se ti può interessare si usa il ByRef in VB  è simile al puntatore del C.
Ciao.

Ultima modifica effettuata da LuigiBiasi il 10/09/2007 alle 18:12
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 19:21
Lunedì, 10/09/2007
Testo quotato

Postato originariamente da LuigiBiasi:

Non credo che in VB esistano i puntatori come in C.



Sì, anch'io lo penso. Ma e' proprio per interfacciare una funzione in C che devo trovare un "sostituto" per il VB6.

Testo quotato


Comunque se ti può interessare si usa il ByRef in VB  è simile al puntatore del C.



Cioe'? Se avessi una funzione di una DLL che accetta un puntatore ad un'area di memoria allocata prima della chiamata?

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 19:57
Lunedì, 10/09/2007
Io non so di preciso cosa devi fare.
Comunque ByRef viene usato nelle funzioni dove in input dai un paramentro che viene allocato all'area di memoria. Forse mi spiego meglio con un esempio:
hai una variabile c di tipo integer per esempio.
e la passi ad un funzione

Codice sorgente - presumibilmente Delphi

  1. 'dichiaro la funzione MyFunct
  2. Function MyFunct(ByRef d as integer)
  3. d = 3
  4. 'MyFunct = d non succede nulla se lo lasci o lo togli
  5. End Function


Codice sorgente - presumibilmente Plain Text

  1. 'chiamo la funzione
  2. c = 256
  3. MyFunct c
  4. 'dopo che passa dalla funzione c sara uguale a d cioè 3


Non so se mi sono spiegato comunque è molto simile al puntatore.
Con il ByRef d viene allocata all'area di memoria di c e quindi c prende il valore di d dopo la funzione.
Spero di esserti stato di aiuto.
Comunque ci sono delle funzioni sui puntatori che ti possono essere utili forse:
VarPtr Restituisce l'indirizzo di una variabile.

VarPtrArray Restituisce l'indirizzo di una matrice.

StrPtr Restituisce l'indirizzo del buffer di stringa UNICODE.

VarPtrStringArray Restituisce l'indirizzo di una matrice di stringhe.

ObjPtr Restituisce il puntatore all'interfaccia fatto il riferimento da una variabile oggetta.

Ultima modifica effettuata da LuigiBiasi il 10/09/2007 alle 19:59
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 20:50
Lunedì, 10/09/2007
Intanto grazie per la risposta ...

Supponi di avere una funzione in C fatta in questo modo

void funz(unsigned char *pbuf)

Ecco ... pbuf e' un puntatore ad un buffer dati di circa 2 K ... come allocarlo in VB e passare il puntatore alla funzione?

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 17:21
Martedì, 11/09/2007
Non ho approfondito VB, penso cmq che su msdn si trovano cose come queste.

Cercando però su google ho trovato questo che ti potrebbe sevire:

http://www.visual-basic.it/articoli/agVB_VC.htm

ma non è che sei tu l'autore? :D

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 17:29
Martedì, 11/09/2007
Bravo netarrow ... a parte qualche eccezione, questa e' una buona comunita' ... ;)

Ultima modifica effettuata da gantonio il 11/09/2007 alle 17:30
PM Quote