I have written a game engine in C++, however I would like to package it up in a file so I don't have to re-compile it every time I want to make a game. I read the MSDN articles on writing re-usable code, and putting it into managed Assembly or in a .dll. But as I am told a .dll is a bad idea and a pain in the neck. I would do managed Assembly however the method of which you would do that as described in the MSDN article it looks like they want you to put everything in a class or use CLR (or something gross like that). In my engine I have taken a C approach at different instances and I don't want to rip apart the engine just to package it up, additionally I would eventually like to make it cross-platform so I don't want to make it too "Microsoftish". So I suppose the question is: is there a good alternative to a .dll or managed Assembly or something that I can use without ripping apart my code?
P.s I would just use a .lib (static library) but I believe it requires a .dll to run.
Info:
Sources:
A static library (.lib) is the most natural lazy choice. You will compile it once with your compiler and then just link to the rest of your program. If you change the program, but not the engine/library, you don't recompile the latter. Of course, you'll need to compile the library with every compiler you use and for every OS, unless they are compatible.