WINDOWS_EXPORT_ALL_SYMBOLS ignores some constants
E.g. constants like extern const char* const XXX
will not be exported, while const std::string XXX
will.
As I've discovered, there is code in Source\bindexplib.cxx that explicitly skips read-only data symbols:
if (!pSymbolTable->Type && (SectChar & IMAGE_SCN_MEM_WRITE)) {
// Read only (i.e. constants) must be excluded
this->DataSymbols.insert(symbol);
}
I wonder, what was the reason for adding this check and whether it's still needed.