Open siren186 opened 1 month ago
You are not supposed to use different runtime libraries in your main application and your plugins.
If I use MT
to build DLL and EXE, it will crash, Because the STL container are malloc in DLL, but free in EXE
That's an unfortunate side effect of using MT with DLLs. Nothing we can do about it.
What about hiding the implementation of Poco::Manifest::insert
and Poco::Manifest::clear
, to make sure who new, who delete
, then it will not crash anymore.
What about hiding the implementation of
Poco::Manifest::insert
andPoco::Manifest::clear
, to make surewho new, who delete
, then it will not crash anymore.
That can't be done. Manifest
is a templated class.
That can't be done.
Manifest
is a templated class.
I wanna use POCO
with CEF3 (https://github.com/chromiumembedded/cef),
But my CEF3 applications are building with MT
.
I am using use my own plugin loader (https://github.com/siren186/z_com), It can work with different MT/MDs.
Now I wanna use POCO
to instead, But it seems impossible
Describe the bug
Poco::Manifest
class hasSTL
member, It will crash if DLL and EXE use different Run-Time Library (MT/MD)To Reproduce Build options: VS2019 + debugstaticmt + x64 ( It must be in
debug mode
andnot MD
if you wanna see the crash message box)EXE code
DLL code
Screenshots
Please add relevant environment information: