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:
codice:
typedef int (*EntryPoint)(int, char**);
static EntryPoint Run;
e all'interno del .cpp che eredita dalla classe comune di applicazione della library.
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; \
}
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.
Uso vs 2008.