qq_41747698 2021-10-21 11:30 采纳率: 75%
浏览 92
已结题

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 定义?如何添加?

  • 写回答

3条回答 默认 最新

  • tengfei2005 2021-10-21 12:54
    关注

    #include
    #include

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月28日
  • 修改了问题 10月21日
  • 创建了问题 10月21日