   Making the engine a dynamic library
  I want to make my engine a dynamic library, but I have got little experience with dynamic libraries. What would be the easiest way to expose classes and variables? Should I really prefix all classes with macro's like EXPORT and IMPORT or is there an easy way to just expose everything?   
  From what I know, windows need export and import directives while unix-like systems do not. I prefix classes with DLL_INTERFACE and on windows use#define DLL_INTERFACE __declspec(dllexport)when building the library, and#define DLL_INTERFACE __declspec(dllimport)when using the library. (empty definitions on linux)Even if you could somehow export all when building a DLL, I believe you would still need import directives when using it, so you would still need to prefix your classes in the headers.   