I know all that - I was just asking what's the point if it's for C named symbols only, since we are oh-so-modern, oh-so-C++, etc.
It's.. weird... to see something like that come up in here from someone that reasonable so I was that disoriented.
I like the idea, just didn't expect it and wouldn't ask because I didn't have a need for that (yet).
Yes, it's kinda possible if you apply some tricks (BTW, if you know mangled name then you can look up that symbol no problem, but mangled names suck that bad...).
Irrlicht, Irrklang and Doom 3 do it with C++ classes, they have pure virtual interface for all classes that gets used across dll/exe boundary with dynamic linker and then they have some C named (extern "C") function to do a "handshake".
Irrlicht and Irrklang have just one or two functions to create the "main" device class from which all others are accessed/created.
Doom 3 has a GetGameAPI in the game dll that doom.exe calls to give it the filesytem, audio, renderer, etc. pointers and retrieve game, gameedit etc. pointers (you can read about it a bit here:
http://fabiensanglard.net/doom3/ ).
Pure C code or C code with C++ inside (like CSFML) is of course no problem.