C++ 制作DLL 引用其它动态库、静态库 MT、MDD下STL内存释放问题

生成了Release、Debug两个版本的opencv动态库、静态库
dll中引用如下
MT、release下,引用静态库可以正常使用

#pragma comment( lib,"D:/opencv32/install/x86/vc14/staticlib/opencv_world453.lib" )
#。。。
#。。。
using namespace std;
using namespace cv;
class 。。。
 


但在debug模式下,MT、MTD均报错,__acrt_first_block == header’异常,原因为class的接口函数中含有std类型vector,string,MT下内存不共用释放错误导致,
因此使用了MDD opencv动态库

#include 头文件,导入lib、dll目录
using namespace std;
using namespace cv;
class。。。
 


问题是:
1、opencv动态库引用至我的dll中后,是否可以不再需要opencv动态库?我测试的时候发现不需要?
2、如果不能,是否只有两种方法:1、拷贝opencv_world.dll 一并加入发布 2、仍然使用opencv静态库,但加入vector string 定义?如何添加?

#include
#include

opencv的release和debug的链接库是不一样的,你确定下是不是写成一样导致debug出问题的?
release下使用的是不带d的:opencv_world453.lib
debug下是有带d结尾的:opencv_world453d.lib

DLL对外函数只用基础类型(整数、结构体指针等),不要用C++类