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
Nel leggere il file effettuo :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;
Leggo poi i restanti valori (dimensioni, colore, etc)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.
Passo poi alla seconda struttura grafica
le variabili utilizzate sono state così definite: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.
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?codice:Rettangolo * puntRect; Picture * puntPict; void * puntObj [1000]; int numObj=0;
Grazie.

Rispondi quotando