应用程序调用dll动态库,参数有vector时崩溃的问题
来源:互联网 发布:澳洲交通软件 编辑:程序博客网 时间:2024/05/22 13:15
今天跟同事遇到了一个问题,问题背景:
一个动态库Tst.dll;
一个应用程序App.exe;
App.exe调用Tst.dll,其中动态库接口有个输出参数是vector<T> vtLst;
问题:
发现每次vtLst这具vector变量析构的时候程序崩溃。
最终发现是App.exe工程的属性设置导致的由原来的Multi-threaded Debug (/MTd)改为Multi-threaded Debug DLL (/MDd)后问题解决;
原因:
MTd/MT调用的是静态库模式,这种模式下应用程序和动态库中的堆是不共享的,各自使用各自的。它的内存分配原则是在库中申请的内存只能在库中释放。
MDd/MD调用的是动态库模式,这种械下应用程序和动态库都使用应用程序中的堆。申请和释放的都是应用程序上堆的空间。
0 0
- 应用程序调用dll动态库,参数有vector时崩溃的问题
- c# 调用有字符串参数的 DLL
- dll动态库调用问题
- PB调用动态库参数为char*时的问题
- Dll中运用vector的堆栈崩溃
- 在自己构造的DLL动态链接库中调用winmm.lib的mciSendString函数有问题
- 动态调用dll问题
- C#调用DLL时参数问题的一点心得
- VB调用C DLL时的参数传递问题
- C#调用DLL时参数问题的一点心得
- C#调用DLL时参数问题的一点心得
- VB调用VC DLL的参数问题
- 动态库DLL的调用
- ASP.net动态调用非托管DLL的参数传递问题
- ASP.net动态调用非托管DLL的参数传递问题
- QT 调用 MFC 常规动态DLL mfc120ud.dll 崩溃
- C#调用DLL时参数问题
- 请问Delphi调用VC写的dll,有传入和传出参数都是unsigned char*运行中有有关问题
- 关于svm_train的参数问题
- 图片集效果 改写
- Memcached调优
- audio与video兼容ie
- 非模态对话框之间的切换
- 应用程序调用dll动态库,参数有vector时崩溃的问题
- 开发中遇到的兼容性问题
- Oracle 11gR2 RAC 常用维护操作
- 服务器安全 -- 端口扫描工具
- maven 打war包
- 怎么把pdf转换成txt的简易方法
- V4L2介绍
- 本地利用远程登录工具登录Linux虚拟机步骤
- Golang gzip压缩的一个问题