hilpers


  hilpers > comp.* > comp.programmare.win32

 #1  
22.07.2004, 18:08
XplodR
Salve,
ho un oggetto dword (nello specifico un indirizzo ip preso da un campo di
testo ip).
Ho visto nella guida che i 4 valori dell'indirizzo vengono salvati in 4
locazioni consecutive di memoria e vanno a comporre un oggetto dword...
a me servirebbero i 4 numeri presi singolarmente... come faccio?
Ho provato con un puntatore all'oggetto dword, e quello che ottengo è che
ovviamente anche andando ad utilizzare l'aritmetica dei puntatori *(p+1) ad
esempio, mi sposto di 4 locazioni, essendo un puntatore a dword...

Suggerimenti?
Grazie
 #2  
22.07.2004, 20:00
osmotic
"XplodR" <NO-SPAM-2-xplodr> wrote in message
news:3223
> Salve,
> ho un oggetto dword (nello specifico un indirizzo ip preso da un campo di
> testo ip).
> Ho visto nella guida che i 4 valori dell'indirizzo vengono salvati in 4
> locazioni consecutive di memoria e vanno a comporre un oggetto dword...
> a me servirebbero i 4 numeri presi singolarmente... come faccio?
> Ho provato con un puntatore all'oggetto dword, e quello che ottengo è che
> ovviamente anche andando ad utilizzare l'aritmetica dei puntatori *(p+1)

ad
> esempio, mi sposto di 4 locazioni, essendo un puntatore a dword...
>


Ogni numero e' lungo un BYTE, quindi dovresti utilizzare un puntatore a
questo tipo di dato e non un puntatore a DWORD,
BYTE * p = (BYTE*) ipAddr;

*p, *(p+1), *(p+2), *(p+3) saranno i 4 byte di cui hai bisogno.

Semplice no?
 #3  
23.07.2004, 11:00
XplodR
> Ogni numero e' lungo un BYTE, quindi dovresti utilizzare un puntatore a
> questo tipo di dato e non un puntatore a DWORD,
> BYTE * p = (BYTE*) ipAddr;
>
> *p, *(p+1), *(p+2), *(p+3) saranno i 4 byte di cui hai bisogno.
>
> Semplice no?


Grazie per l'informazione,
ho provato ma non funziona, si impalla il programma...
Il fatto è che per adesso mi servirebbe copiare il primo numero dell'IP
dalla casella dell'IP ad una editbox...
La variabile associata alla casella IP è del tipo
DWORD valoreip
mentre quella dell'editbox è di tipo
int valoreid
(ho già provato a mettere al posto di int __int64, long int, unsigned long
ma il problema persiste...)

Grazie a chiunque vorrà aiutarmi a questo punto...
 #4  
24.07.2004, 07:37
Proxima
XplodR ha scritto:

> Grazie per l'informazione,
> ho provato ma non funziona, si impalla il programma...
> Il fatto è che per adesso mi servirebbe copiare il primo numero dell'IP
> dalla casella dell'IP ad una editbox...
> La variabile associata alla casella IP è del tipo
> DWORD valoreip
> mentre quella dell'editbox è di tipo
> int valoreid
> (ho già provato a mettere al posto di int __int64, long int, unsigned long
> ma il problema persiste...)


Scuate, mi intrometto: a questo punto si tratta semplicemente di assegnare
a una variabile int una vraiabile BYTE; dal momento che BYTE occupa 1
byte, e int ne occupa 4, non vedo il problema, no? Perché hai provato
__int64??? o_O
 #5  
24.07.2004, 09:53
XplodR
> Scuate, mi intrometto: a questo punto si tratta semplicemente di assegnare
> a una variabile int una vraiabile BYTE; dal momento che BYTE occupa 1
> byte, e int ne occupa 4, non vedo il problema, no? Perché hai provato
> __int64??? o_O


Non sapevo che pesci prendere :-)
Cmq ho provato anche a fare come dici tu (è stato il mio primo tentativo) ma
ricevo degli errori e il programma termina non correttamente...
Le righe di codice interessate sono

[CODE]
BYTE* ip0=(BYTE*)valoreip;
valoreid=*ip0;
[/CODE]

valoreip è di tipo DWORD, valoreid è int...
Discussioni simili
Parametri oggetto COM (SafeArray of Byte)

Ciao, scusatemi per il continuo post, ma mi sto incasinando :-/ Dopo l'aiuto di SetecAstronomy riguardo il wrapper php://input mi serve una mano con queto problema: i dati...

Oggetto Buffer as Byte: LENGHT???

Scusate, forse è una domanda troppo idiota... Se io dichiaro dim buffer (1024) as byte quanti caratteri potrò metterci dentro? Secondo quello che ho scoperto sarebbe 3...

vettore di byte e gestione singoli bit

Buongiorno, devo gestire variabili (meglio dei campi) di diverse dimensioni memorizzate in un vettore di byte (unsigned char). Gestire nel senso di estrarle e memorizzarle...

prendere i byte in parole di 2 byte

Salve a tutti. Ho un problema che non so risolvere. Ho bisogno di codificare una sequenza numerica in un'altra sequenza numerica. Mi spiego meglio. Supponiamo di aver...


Tutti gli orari sono GMT. Attualmente sono le 23:40. | Privacy Policy