Describe the bug
Poco::Manifest class has STL member, It will crash if DLL and EXE use different Run-Time Library (MT/MD)
To Reproduce
Build options: VS2019 + debug_static_mt + x64
( It must be in debug mode and not MD if you wanna see the crash message box)
EXE code
#include "DLLTest/AbstractPlugin.h"
int wmain(int argc, wchar_t** argv)
{
Poco::ClassLoader<AbstractPlugin> loader;
loader.loadLibrary("Test.dll");
AbstractPlugin* pPluginA = loader.create("PluginA");
AbstractPlugin* pPluginB = loader.create("PluginB");
loader.classFor("PluginA").autoDelete(pPluginA);
delete pPluginB;
loader.unloadLibrary("Test.dll");
}
DLL code
class AbstractPlugin
{
public:
virtual ~AbstractPlugin() {};
virtual void foo() const = 0;
};
class PluginA : public AbstractPlugin
{
public:
virtual void foo() const override
{
}
};
class PluginB : public AbstractPlugin
{
public:
virtual void foo() const override
{
}
};
POCO_BEGIN_MANIFEST(AbstractPlugin)
POCO_EXPORT_CLASS(PluginA)
POCO_EXPORT_CLASS(PluginB)
POCO_END_MANIFEST
Screenshots

Please add relevant environment information:
Describe the bug
Poco::Manifestclass hasSTLmember, It will crash if DLL and EXE use different Run-Time Library (MT/MD)To Reproduce
Build options: VS2019 + debug_static_mt + x64
( It must be in
debug modeandnot MDif you wanna see the crash message box)EXE code
DLL code
Screenshots

Please add relevant environment information: