The 3.6.3 release removes the use of the Scintilla.def file for Windows builds. The explanation in the release history is because "it duplicates source code directives" I think this is causing an issue for me...
In prior versions the Scintilla_DirectFunction is exported fine, but starting with v3.6.3 the exported function looks like it has C++ name mangling. I've attached the output from DUMPBIN for v3.6.2 and v3.6.3.
The reason this is an issue for me is that from C# we use P/Invoke to call the exported function by name at runtime using GetProcAddress.
I am currently building with VS2013 command prompt using "nmake -f scintilla.mak".
Please ignore the DUMPBIN 363.txt attachment. That one includes debug information for the export function, but not the mangled name. I've attached the correct DUMPBIN 363-correct.txt file which properly shows the name mangling.
I've also found that if I rollback the scintilla.mak file to the prior version which includes a reference to the DEF file it exports Scintilla_DirectFunction as I would expect without the name mangled.
OK. The 64-bit Microsoft compiler and g++ produced the correct unmangled export.
Using the .DEF file produces this warning from the 64-bit Microsoft compiler:
ScintillaWin.obj : warning LNK4197: export 'Scintilla_DirectFunction' specified multiple times; using first specification
Reverted with [1cf4c4].
Related
Commit: [1cf4c4]