True class interfaces in C++ libraries on Windows are not exactly simple: either you restrict users of your library to a certain range of compilers (or rather: Visual-Studio suites) which happen to run the absolutely identical name-mangling, EABI and object layout (no idea how restrictive this is in reality) or you use COM (following this article) and pure virtual interface classes.
I tried to assess the situation on Linux/Posix where the range of available compilers is larger and I therefore also thought, the problem of creating shared libraries with stable interface, but to my surprise it is much harder to investigate if there is an issue or if Posix has defined a compatibility layer so that no one needs to care anymore.
Can someone give a short explanation of how the status of this problem really is, on both platforms?
Or point out where and why I am misinterpreting the whole affair?
EDIT: there is already a question with excellent answers detailing most of my issues: How do I safely pass objects, especially STL objects, to and from a DLL?