Ciao a tutti,
programmino di lettura da file unicode di strutture grafiche che poi dovrò stampare.
Ho effettuato un ciclo while per leggere tutto il file riga per riga.
Ho creato delle strutture al momento due (rettangolo e picture) così definite
codice:
typedef struct
{
int ObjID;
int Xs;
int Ys;
int Xd;
int Yd;
COLORREF bckground ;
COLORREF fgcolor;
int LinkID;
int numRect;
}Rettangolo;
typedef struct
{
int ObjID;
int Xs;
int Ys;
int Xd;
int Yd;
COLORREF bckground ;
COLORREF fgcolor;
int LinkID;
WCHAR * sPathImage;
}Picture;
Nel leggere il file effettuo :
codice:
if (puntObj[numObj] != NULL ) numObj++; // così diventa 1
puntObj[numObj] = malloc(sizeof(Rettangolo)); //lo spazio allocato sarà grande come la dimensione della struttura.
puntRect = (Rettangolo*) puntObj[numObj] ;
puntRect ->numRect = numObj;
puntRect -> ObjID = 2; //per dire che la nostra struttura è un rettangolo.
Leggo poi i restanti valori (dimensioni, colore, etc)
Passo poi alla seconda struttura grafica
codice:
if (puntObj[numObj] != NULL ) numObj++; // così diventa 1
puntObj[numObj] = malloc(sizeof(Picture)); //lo spazio allocato sarà grande come la dimensione della struttura.
puntPict = (Picture*) puntObj[numObj];
puntPict -> ObjID = 5; //per dire che la nostra struttura è un rettangolo.
le variabili utilizzate sono state così definite:
codice:
Rettangolo * puntRect;
Picture * puntPict;
void * puntObj [1000];
int numObj=0;
Ora... alla fine vorrei leggere le strutture e procedere con la stampa dei singoli oggetti... ma in debug mi accorgo che se vado a leggere il valore di (Rettangolo*) puntObj[0] trovo i valori correttamente caricati del primo oggetto rettangolo ma se sostituisco (Rettangolo*) con il secondo puntatore (Picture*) leggo gli stessi valori . Ora come faccio a leggere quello che ho caricato in puntObj?
Grazie.