调试程序,每次关闭一个界面就会弹出中断错误。

为了确认这个问题,我将出现问题那一段代码中的函数一个个屏蔽,以此来确认到底哪个函数出现问题,缩小范围:

最后我发现,只要屏蔽掉checkIfFingerInfoSynchronized这个函数,就不会出现这个问题。

这个函数中,用到了dll中一个函数:int getFingerInfo(P_USER_INFO* pUserFingerInfo, int * num)

其中有申请堆内存的操作

但释放内存操作是在主程序,而非dll

这是因为, dll里面申请的内存与主程序内存存放地方不一致,

所以dll里面new的内存, exe里面delete是要AV的.

先屏蔽掉该释放内存操作

就不会在AV了

但dll里new的内存该如何delete呢?

就像这篇文章说的那样,dll里再export个delete内存的函数,主程序调用即可

https://blog.csdn.net/rocklee/article/details/73478110

因内存释放而引发的中断问题,dll中new的内存释放问题的更多相关文章

  1. EXE中释放DLL中分配的内存

    在DLL中分配的内存,如果到其调用者中释放,可能会出现CRASH的情况,其原因在于: 在DLL中的Code Generation如果是采用了MT(静态加载LIBCRTD.LIB)在该库中维护了一个al ...

  2. Windows Server 2008 R2服务器内存使用率过高,但与任务管理器中进程占用内存和不一致

    系统环境: Windows Server 2008 R2 + Sql Server 2008 R2   问题描述: Windows Server 2008 R2系统内存占用率过大,而在任务管理器中各进 ...

  3. 【C/C++开发】C语言 DLL(动态链接库)中申请动态内存释放的问题

    参考:首先,声明一点,凡是使用malloc之类命令动态申请的内存,必须进行释放操作,否则就会发生内存泄漏问题. DLL中申请的内存释放,如果没有做过,很可能会认为是直接在调用程序中释放就可以了,其实不 ...

  4. iPhone应用中如何避免内存泄露?

    如何有效控制iPhone内存管理的对象的所有权与引用计数和以及iPhone内存的自动释放与便捷方法.本文将介绍在iPhone应用中如何避免内存泄露.想了解“在iPhone应用中如何避免内存泄露”就必须 ...

  5. 多线程编程中使用pthread_create内存泄露问题

    //tls5源代码: #include <stdio.h> #include <unistd.h> #include <string.h> #include &qu ...

  6. 第10课 C++中的动态内存分配

    C++中的动态内存分配 C语言是通过库函数来完成动态内存分配的,而C++是通过关键字从语言层面支持的. C语言中的malloc是基于字节来进行内存申请的,C++中是基于类型来进行的. delete加上 ...

  7. Android中常见的内存泄漏

    为什么会产生内存泄漏? 当一个对象已经不需要再使用了,本该被回收时,而有另外一个正在使用的对象持有它的引用从而导致它不能被回收,这导致本该被回收的对象不能被回收而停留在堆内存中,这就产生了内存泄漏. ...

  8. C和C++的内存操作小贴士(一):const char*的内存释放问题

    C和C++的内存操作一直是困扰开发人员的老问题,基本概念相信老司机们都很清楚了,在这里就不做过多的描述了,只是把在实际开发中可能遇到的一些小问题的案例列举下,供大家参考.“C和C++的内存操作小贴士” ...

  9. 释放SQL Server占用的内存 .Net 读取xml UrlReWriter 在web.config中简单的配置

    释放SQL Server占用的内存   由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存.所以很多 ...

随机推荐

  1. 【codeforces 768A】Oath of the Night's Watch

    [题目链接]:http://codeforces.com/contest/768/problem/A [题意] 让你统计这样的数字x的个数; x要满足有严格比它小和严格比它大的数字; [题解] 排个序 ...

  2. jws 问题总结

    问题1.wsimport不是内部或外部命令 今天执行wsimport时报了wsimport报了不是内部或外部命令的错误,第一反应是检查环境变量,没发现什么问题,执行java  -version也正常, ...

  3. 【17.69%】【codeforces 659F】Polycarp and Hay

    time limit per test4 seconds memory limit per test512 megabytes inputstandard input outputstandard o ...

  4. WPF 使用 Pandoc 把 Markdown 转 Docx

    原文:WPF 使用 Pandoc 把 Markdown 转 Docx 本文告诉大家如何通过 WPF 使用 Pandoc 把 Markdown 转 Docx 文件 在之前有文章使用 Pandoc 把 M ...

  5. .net命名空间和程序集详解

    命名空间是一种用于将逻辑上相似的类按层次结构分组的机制.这种机制防止了命名冲突.在这种结构化采用被点号"."分隔的单词来实现.通常最顶层的命名空间是System,例如System; ...

  6. http_load测试初阶

    http_load的标准的两个例子是: 1.         http_load -parallel 5 -fetches 1000 urls.txt 2.         http_load -ra ...

  7. 新世界PT850/PT853检查用友机对接T1交易宝

    新世界PT850/PT853检查用友机对接T1交易宝 这是一个老话题.简单.条形码号码模式是没有必要说,我要说的是,,启用条码扫描.显示有关信息. 并能够产生:条码 , 数量,价格格 这样做的目的.将 ...

  8. TCP 和 UDP 的区别

    参考:http://blog.csdn.net/li_ning_/article/details/52117463 TCP与UDP区别总结: 1.TCP面向连接(如打电话要先拨号建立连接);UDP是无 ...

  9. 并发-Java并发编程基础

    Java并发编程基础 并发 在计算机科学中,并发是指将一个程序,算法划分为若干个逻辑组成部分,这些部分可以以任何顺序进行执行,但与最终顺序执行的结果一致.并发可以在多核操作系统上显著的提高程序运行速度 ...

  10. 4 DDD里面的界限上下文

    1 界限上下文概念的出现 当开发一个电子商务系统的时候,会给系统划分很多子域,销售子域是核心子域,此外还有物流子域,商品子域等支撑子域.在这些子域里面,一个商品product在销售子域和商品子域里面外 ...