Ciao.
Sto studiando un engine 3d e ha un sistema di inizializzazione che assegna ad un puntatore a funzione l'indirizzo della funzione di inizializzazione.
L'engine ha una classe comune di applicazione compilata in una library(.lib) dove all'interno ho la mia funzione da richiamare (Run) e uba macro WM4_WINDOW_APPLICATION.
dichiara nella classe di utilizzo:
e all'interno del .cpp che eredita dalla classe comune di applicazione della library.codice:typedef int (*EntryPoint)(int, char**); static EntryPoint Run;
il problema è che non esegue la macro anche se è richiamata , ho provato a mettere un breakpoint nella macro e questi spariscono quando faccio il run dell'applicazione.codice:WM4_WINDOW_APPLICATION(SkinnedBiped); //la macro: #define WM4_WINDOW_APPLICATION(classname) \ WM4_IMPLEMENT_INITIALIZE(classname); \ \ void classname::Initialize () \ { \ Application::Run = &WindowApplication::Run; \ TheApplication = WM4_NEW classname; \ }
Uso vs 2008.

Rispondi quotando