I was looking at the quake2 source code and opened up gamex86.dll and noticed how all it exports is a function, "GetGameAPI()". As far as I can tell it returns a struct of function pointers.
I had a look at the Crytek (Far Cry's engine) DLL's and they look pretty similar; CryAISystem.dll exports "CreateAISystem()" and another function, "CryModuleGetMemoryInfo()".
I've been working on a little engine the last couple of days and I was thinking about doing this, since right now my core DLL exports almost every bloody class since I'm unsure of a method to... hide stuff.
Guess what I'm asking is: Is the method q2 uses a good idea? It seems a little inflexible, exporting a whole bunch of function pointers. What about Crytek's method?
In case you were wondering, my little project is coming along fine. Slowly, but otherwise fine.