-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Closed
Description
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_MANIFESTPlease add relevant environment information:
- Windows 10
- POCO-1.13.2
Reactions are currently unavailable
