|
From: Bernardo I. <be...@de...> - 2002-03-14 10:35:09
|
Salve, se tutto va bene dovrei venire a farvi visita Giovedi'. Qualche giorno fa ho aggiunto i lavori in corso nella tasklist di SourceForge: http://sourceforge.net/pm/?group_id=47074 Per adesso sono tutti assegnati a soulraiden (AKA Alexio), ma se rimane malato a lungo ne sposteremo qalcuno ad altre persone. Ho anche dato a ciascun sottoprogetto uno stadio di completamento approssimativo, in base alle ultime cose di cui sono al corrente io. Poi ho messo online una versione leggermente rivista delle specifiche preliminari nella sezione files: http://sourceforge.net/project/showfiles.php?group_id=47074 Ho solo corretto qualche strafalcione mio, non ci sono cambiamenti sostanziali. Per rispondere a Federico sulla SDL: L'archivio SDL-1.2.3.zip, se non ricordo male, dovrebbe contenere i sorgenti completi della SDL. Non e' indispensabile, ma ci potrebbe tornare comodo se c'e' qualcosa che non torna nella documentazione e anche per il debug. L'ordine incasinato delle librerie per il linker (cioe': -lmingw32 -lSDLmain -lSDL) deriva dal fatto che l'include SDL_main.h ha una definizione fatta cosi': #define main SDL_main Questo trucco serve per cambiare nome al main() dell'utente, in modo che il vero main() dell'applicazione venga preso da dentro la libreria SDLmain. Questo main() inizializza alcune cose dell'SDL e poi chiama la SDL_main() scritta dall'utente. Ora, in realta' le applicazioni per Windows (sia a 32bit che a 16bit) non iniziano veramente dal main(). Il vero "entry point" chiamato dal sistema operativo e' WinMain(). Questa funzione viene di solito fornita dalla libreria del compilatore e si occupa di chiamare main() dopo aver inizializzato l'ambiente del C (i file, la memoria, etc.). Quindi la sequenza di chiamate vera e propria diventa: WinMain() -> SDLmain:main() -> SDL_main() [il nostro main()] Adesso viene il bello: il linker del gcc, si comporta da sempre in questo modo: legge le librerie nell'ordine in cui sono state date e include nell'eseguibile tutte le funzioni non ancora definite. A loro volta, queste funzioni possono a loro volta richiedere _ALTRE_ funzioni, ma a questo punto il linker non ritorna piu' a leggere le librerie precedenti e quindi le librerie vanno ordinate per dipendenza. Per adesso e' tutto, tenetemi informato tramite la mailing list. Bye! -- // Bernardo Innocenti - Develer S.r.l., R&D dept. \X/ http://www.develer.com/ |