Hello,
I'm writing a cross-platform disk IO library and I decided to make it a separate module. On Windows this is a DLL and on Linux this is called a shared object (I think). Now I'm asking if there are any significant differences between them - is there something like DllMain function for shared objects and can I link them with other programs by using import libraries?
The most important difference I've noticed: DLLs only expose functions that have been explicitly exported, whereas shared objects expose all functionality.
Oh, and loaded shared objects can be shared across processes to save memory (hence the "shared" part), while DLLs can't.