So I was just working with function pointers and I remembered that you could do this:
void Foo() { } int main() { void(& func)() = Foo; func();
I've used them in a plug-in system where plug-in DLLs could be loaded/unloaded at run-time. I would look for known symbols in each DLL and cast them to function pointers.