stl的常用结构有 vector、list、map等。

今天碰到需要在不同dll间传递这些类型的参数,以void*作为转换参数。

比如 DLL2 的接口 add(void*pVoid);

1.在DLL1中调用该接口,

struct st_headerTerminalRes
{
st_headerTerminalRes(){id=0;}
int id;
int type;//restype 1=mc 2=camera
int resId;
int headerId;
};
typedef vector<st_headerTerminalRes> ltHeaderres;

ltHeaderres ltRes;
add((void*)(&ltRes));

2.在DLL2中

ltHeaderres ltRes = *(ltHeaderres *)pVoid; 在此处报错

如果DLL1和DLL2都是release或都是debug版本,调用是不会报错的。

而本人用的是debug的DLL1,调用release的DLL2。导致在该行报错。

所以在DLL互相调用的时候,一定要统一版本。混合调用很容易出现奇怪的问题。

debug版本的DLL调用release版本的DLL引发的一个问题的更多相关文章

  1. Debug与Release版本的区别详解

    原文链接 Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动.如果我们愿意,我们完全可以把Debug和Release的行为完全颠 ...

  2. Debug与Release版本的区别

    Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动.如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来.当 ...

  3. 【VS开发】MFC运行时库与debug、release版本之间的配置关系

    参考内容: 前段时间从网上下来一个有意思的代码,用VS2010打开时需要将工程转换为2010的工程,转化后却出现了编译不通过的问题,类似这样的错误:c:\program files\microsoft ...

  4. 转【C#调用DLL的几种方法,包括C#调用C\C++\C#DLL】

    C#中dll调用方法   一.      DLL与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一, ...

  5. Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)

    Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...

  6. 玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理

    Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services.exe -unregserver Windows服务Release版本 注册 Servi ...

  7. MFC下debug改成release版本出现问题及解决办法

    自己在debug下成功运行了自己写的测试自己写第三方库的程序,这里有用到opencv库,所以同时用到了自己的库和opencv的库,需求因为要进行速度的测试,是想要把debug改成release版本,这 ...

  8. MFC中release版本和debug版本区别

    最近MFC写了个程序,生成release版,原来正常,后来删掉了些控件再编译运行,结果竟然报内存读写错误,debug却是正常的.后来将“Project   Settings”   中   “C++/C ...

  9. 玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理

    原文:玩转Windows服务系列——Debug.Release版本的注册和卸载,及其原理 Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services ...

随机推荐

  1. 在Django中显示操作数据库的语句

    需要在配置中加上这个 LOGGING = { 'version':1, 'disable_existing_loggers':False, 'handlers':{ 'console':{ 'leve ...

  2. 图片懒加载--lazyload.js的用法

    这几天公司的项目已经完成的差不多了,只剩下各种优化问题.今天着重于图片加载的优化.当一个页面需要下拉很长而且又有过多的图片要加载时,就会发生很多http请求,就会拉慢网页加载速度,用户体验不友好.怎么 ...

  3. python知识架构

    如果看不清可以右键图片打开新的标签页 原文链接:https://blog.csdn.net/oscer2016/article/details/80129284

  4. 关于vuecli的一些问题

    在vue打包之后,我们引入的css路径和js路径会变成绝对路径 需要在vue.config.js里面设置publicpath为"./" 同时在做前后端分离开发时,我们通常会用到ax ...

  5. opentsdb操作草稿

    插入数据api/put 192.168.1.68:4242/api/put?details http://localhost:4242/api/put?detailsmethod:POST[ { &q ...

  6. 读取txt文件的数据,并将其转换为矩阵

    import numpy as nppath_txt_data = 'C:/Users/51102/Desktop/my_yolo/data/box/train.txt'def input_data( ...

  7. centos7安装face_recognition踩各种坑

    要在阿里云服务器上部署face_recognition.用的是centos7.  千辛万苦啊.感谢网上的各种解答.回报社会,我也把各种坑写下了.整理的有点乱.不过仔细看,有干货的. 感谢这个博主Fat ...

  8. C#中的委托、事件及事件的订阅

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. 设计模式--Bulider模式

    起因:最近在做统计计算,创建的实体中属性比较多,都是一些数值,一开始是通过get.set方法进行赋值,占用了很多业务代码方法的长度,可读性不太好,后来改用了添加构造器的方式,稍显精简了一点,但是每次赋 ...

  10. MySQLNonTransientConnectionException: Could not create connection to database server.

    MySQLNonTransientConnectionException: Could not create connection to database server. Spring整合mybati ...