Thanks for so detailed an answer ! A few followup questions:
- How do you dump a DLL in such way ? I want to examine mine and see if there's name mangling.
- My DLL has no DEF file with it (it has a LIB file for linking from C++) and its .h file just places WINAPI as I demonstrated, so I guess I can't know which compiler options were enabled. Though I'm pretty sure it was compiled with a MS compiler.
- So is there a chance to successfully call functions from the DLL if it was compiled with _cdecl ?
- I get a segfault when I declare the arguments / return value as SHORT, but don't get it when I declare them INT. How can this be affected by what you described ?
- Finally: will all the same problems surface using an XS wrapper for the DLL ?