Modern C++ Lamentations

Ethan gooberman at gmail.com
Thu Jan 3 21:22:03 UTC 2019


On Thursday, 3 January 2019 at 19:36:52 UTC, Jonathan M Davis 
wrote:
>From the last time I worked with Windows dlls, I remember quite 
>distinctly
> that doing anything like adding a symbol to the library meant 
> that it was incompatible with executables previously built with 
> it (which is not true for shared libraries on *nix - they only 
> break if the ABI for the existing symbols changes).

That would surely break if you were looking up symbols by ordinal 
instead of by name. I didn't even know you could do that until I 
read the documentation for GetProcAddress closely - turns out the 
name parameter can be used as an ordinal.

All exportable symbols are exported by their mangled name in to 
the DLL's export table. Resolving by mangle will give you a 
similar experience to *nix there.


More information about the Digitalmars-d mailing list