Newsgroup: it.comp.lang.visual-basic
Titolo: Da Puntatore a Struttura, senza copymemory: ?

Ammesso di avere un LONG che sia di fatto il puntatore ad una variabile 
(per estensione, di tipo User Defined), è possibile accedere al contenuto 
SENZA dover fare una copia della variabile originale (ovviamente tramite 
il puntatore) su una variabile di appoggio?
Grazie

 il puntatore) su una variabile di appoggio?
Si dovrebbe convincere VB che una variabile che punta ad una struttura non
punta in effetti alla memoria allocata da VB bensě a quella del puntatore
esterno (cosa che comunque richiederebbe un copymemory e sarebbe oltremodo
pericolosa). Direi che l'unica pratica consentita *in* VB sia quella della
copia (non č molto performante, ma...)
----------------------------------------------------------------
Stefano Minardi
zet...@mclink.it
----------------------------------------------------------------

, 
zet...@mclink.it
 says...

perň stavo pensando... se sapessi l'offset (in bytes) di uno dei campi 
della struttura, potrei solo copiare il campo che mi interessa, facendo 
una copymemory passando l'indirizzo incrementato di un tot... giusto?
Cosa č pericoloso? la CopyMemory???
--
Gio_F - mailto:
jg...@tiscalinet.it

 Cosa è pericoloso? la CopyMemory???
Oddio, va usata con cautela. No, alludevo alla possibilità di cambiare un
puntatore a struttura di VB. Mettere le mani nella tabella di allocazione
delle variabili di VB era ancora possibile con VB3 (esistevano le API
apposite) ma direi che è arduo da VB4 in poi.


 
-- 


Qualcuno mi sa spiegare come si fa a creare un puntato in VB?
Grazie...
        Allanon


Cerca sull'help ADDRESSOF
--
 
federic...@planet.it
Eliminare NOSPAM dall'indirizzo! Delete NOSPAM from address!

, 
federic...@planet.it
 
says...

no, quello da l'indirizzo delle funzioni. e con limitazioni.
cerca:
varptr
arrptr
strptr
objptr
e 
copymemory

- ArrPtr, per ricevere il puntatore ad una variabile array (non documentato)
Ciao Roal,
perché non ci dici dove trovare le documentazioni di cui sopra? (visto che non ci sono manco
nell'MSDN...)
Grazie,
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

>- ArrPtr, per ricevere il puntatore ad una variabile array (non
documentato)
VarPtr()
StrPtr()
ObjPtr()
Sono intrinseche di VB (mi sembra almeno dalla Ver. 5.0) per cui se inizi a
digitare ti vengono completate dall'intellisense di VB.
Comunque la loro dichiarazione č questa (la si trova nella rispettiva
versione del Runtime di VB)
Declare Function VarPtr Lib "msvbvm60" (ptr As Any) As Long
Declare Function StrPtr Lib "msvbvm60" Alias "VarPtr" (ptr As String) As
Long
Declare Function ObjPtr Lib "msvbvm60" Alias "VarPtr" (ByVal ptr As Object)
As Long
Con un bel punto di domanda sulla StrPtr() poichč la funzione intrinseca e
la declare mi danno due risultati diversi.
E poi c'č la ArrayPtr che deriva sempre dalla VarPtr() (Questa č _davvero_
non documentata)
Declare Function ArrayPtr Lib "msvbvm60" Alias "VarPtr" (ptr() As Any) As
Long
Comunque se cerchi sull'MSDN le prime ci sono tutte :)
(devi cercare con la linguetta "Cerca" e non "Indice")
Ciao

(devi cercare con la linguetta "Cerca" e non "Indice")
Aaaaaah, tutte 'ste lingue...... adesso anche per programmare bisogna essere poliglotti....
;-))


Grazie,
E ti va già bene che l'esperimento VBA in italiano su Office95 sia fallito,
altrimenti adesso ti troveresti a scrivere robe tipo
Per i = 1 FinoA 5
    Debug.Stampa i
Successivo i
con una portabilità "ottima" persino tra VB di diverse lingue
:)
ciao



sì, come quando ad esempio con Access scrivevi:
Maschere!Fornitori![D_Fornitore]	(non ricordo se la sintassi è giusta, ma non ha importanza)
e se poi caricavi il db su una versione inglese ti dava errore perché non conosceva "Maschere" ma
voleva "Forms".....
ci credo proprio alla portabilità... ;-))


Hai provato sia ByRef che ByVal?
Sì :(
Ciao

 altrimenti adesso ti troveresti a scrivere robe tipo
Purtroppo VBA per Word è stato tradotto per una buona parte... abbastanza da
costringere gli sviluppatori a tradurre i nomi dei comandi (presentati in
italiano, ma in realtà il programma usa qulli in inglese)... FileApri ->
FileOpen eccetera... è una brutta seccatura