0x56daef9c (mfc100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x5a4ce810 时发生访问冲突
出现"0x56daef9c (mfc100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x5a4ce810 时发生访问冲突"的原因主要是因为内存泄露。
而内存泄露主要因为以下一些情况引起:
1、申请的内存没有释放
new后必须delete
malloc后必须free
创建内核对象(比如CreateFile,CreateMutex,CreateThread),后必须释放内核对象句柄.
创建内存映射文件,CreateFileMapping,MapViewOfFile后必须CloseHandle(),UnMapviewofFile
创建GDI对象后,比如LoadIcon,LoadImage,CreateImageList等等,必须Destroy掉
创建DC后,比如GetDC(), 必须释放DC句柄
保留虚拟地址空间 VirtualAlloc(),然后提交物理存储器后,必须释放掉
2、出现死循环导致内存泄露
3、所有的第三方类库存在内存泄露相关的BUG
具体内容要根据代码进行分析。