内存访问冲突问题(非法内存访问)

article/2025/9/24 2:13:13

无独有偶,我居然又碰上了同样的问题。

 

原因跟之前一样,对象在内存中已经被销毁,或者这个对象压根就没有被创建过。

慢慢的查找p_Screen在哪里被复制以及在哪里被销毁,最有效的方法就是看函数调用栈。

当我把断点设置在p_Screen赋值语句的那一行时,发现还没运行到断点处就已经触发异常了,当然还有一种可能就是断点处的函数根本就没有被调用,而是跳过了这个函数而继续往后面执行了,不过我反复测试了一下,基本可以排除第二种可能。

因此问题的症结就在指针在还没有被初始化或者赋值之前就被访问了(看到这个错误读者是否很无语?那就继续往下看吧    )

解决方法:

将指针的初始化提前到在访问之前就行。  

总结:这个问题确实是很简单,但是我为什么会犯这种错误呢?

我觉得。。。这不怪我,不怪我,真的不怪我!!!

责任在于框架程序的响应方式(~。-) :

因为我的项目用的是MFC的框架编程,所以框架内部的各个模块调用先后顺序真的并不是很明确,而且不是显示(与隐式相对)的通过一个成员函数调用另一个成员函数,各个函数之间没有明确的调用与被调用关系。

他们之间是基于消息机制驱动的。

系统(内核)发送消息(这些消息大部分是我的项目为了创建窗口或者申请资源的需要而自动要求内核发送的,只有一小部分是内核捕捉到的消息,比如鼠标点击、键盘按下等等),指定函数对其进行响应,因此函数之间的调用关系以及执行的先后顺序自然是捉摸不定的。

像这种基于系统消息驱动的程序,在编程时一定要小心了,在消息函数的调用顺序不明确的时候,尽量不要把自己的赋值语句写进去,除非万不得已,为了实现功能的需要。

否则就有可能出现你的变量还没有被初始化之前就已经被访问,那么就会出现程序运行时错误了。(慎用框架)

当然框架也有很多优点,对于我们这种刚刚写项目的newbie,对设计模式也不太了解,框架可以帮我们构造好项目的一个基本模型,我们只需要了解整个框架的结构,向里面添加一些功能就好,这样整个项目也就条理清晰,可读性也强,也易于维护。

 

转载于:https://www.cnblogs.com/xwmcc/p/10033706.html


http://chatgpt.dhexx.cn/article/W0OjGOtJ.shtml

相关文章

访问固定的内存位置(Accessing fixed memory locations)

背景 如果有学过汇编,那么访问内存将不是一件难事,因为汇编要求你熟悉每一个内存模块,每一个内存地址。我记得当初上汇编的第一节课,老师就说汇编如果不懂的,直接debug那个地址,在命令控制台里找出那个地址…

访问非法内存为什么不会出错?

大家好,我是杂烩君。 上篇文章分享几个实用的代码片段(第二弹)我们分享了一段代码: 有位读者在朋友圈评论我的文章:(type * )0不是指向空地址吗?(type*)0->…

关于ImportError: DLL load failed: 内存位置访问无效的解决方案

一、首先确定import XXX哪个出错了。我的是import ibm_db出错了! 二、cmd,输入 pip uninstall ibm_db,先是删除这个驱动包!前提是你必须安装pip,如果没有安装命令不能识别。 三、删除成功后,输入 pip ins…

MUI框架详解-全面讲解MUI框架使用

课程目录: 01MUI 介绍、新项目创建、 基础布局.mp4 02MUI - accordion(折叠面板)、button.mp4 03MUI - actionsheet(操作表)、badge.mp4 04MUI - 复选框、单选框、使用js获取选择值.mp4 05MUI - datepicker&#xff08…

腾讯开源的Android UI框架——QMUI Android

各位同学,早上好,我是你们的老朋友D_clock爱吃葱花,前些天忙着发版本,最近也在看各种各样的新知识,有好多东西想写啊啊啊啊啊。嗯,先冷静捋一下,卖个关子。扯回正题,今天继续为大家推…

vue开发移动端,mui框架的各种使用方法

前面提到使用vue开发APP,自己不太熟悉,后来了解到有这个mui框架,然后改变状态栏颜色和监听返回键也是使用的这个框架,后来又遇到了一些问题,但是官网没有写操作方法(也许是没找到),后…

Android原生集成MUI框架进行混合开发

开发APP中我们经常进行原生结合H5进行混合开发,下面将进行详细讲解Android原生集成MUI框架进行混合开发(项目Demo如下,有需要的可以下载查看),下一篇讲述,Android原生和MUI(也适合H5与原生交互&…

MUI 前端框架体验

前端框架有很多&#xff0c;在做混合开发APP 时&#xff0c;MUI 的UI 看起来更像原生APP&#xff0c;所以就选择MUI 来体验一下。 1 首先下载 安装 HBuilder X 2 创建并选择5app 项目 3.比较关键的index页面 Markup <!DOCTYPE html> <html> <head><me…

Android引入QMUI框架

前言 作为一个JAVA后端开发&#xff0c;学习Android开发&#xff0c;Android原生UI控件样式单一&#xff0c;简单&#xff0c;下面考虑引入UI框架QMUI。具体步骤如下&#xff1a; 一、创建一个Empty项目 二、打开QMUI官网查看相关步骤(对新手很不友好) https://qmuiteam.com…

vue框架和uniapp框架区别,前端vue和uniapp哪个好用

uniapp和vue有什么区别&#xff1f; vue和uni-app的区别如下&#xff1a;1、uni-app可以通过打包实现一套代码多端运行&#xff0c;而vue不行。2、uni-app有自动的框架预载&#xff0c;加载页面的速度更快&#xff0c;vue没有。 3、uniapp使用小程序的标签&#xff0c;vue使用…

vue介绍及vue与其它框架的优缺点

一.vue介绍 1.什么是vue.js Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有…

MUI框架-05-用MUI做简单App界面

MUI框架-05-用MUI做一个简单App MUI 是一个前端框架&#xff0c;前端框架就像 Bootstrap&#xff0c;EasyUI&#xff0c;Vue ,为了做 app 呢&#xff0c;就有了更加高效的 MUI&#xff0c;我觉得前端框架有很多&#xff0c;也没有必要都取掌握&#xff0c;找一个比较出名的&am…

MUI--高性能前端框架

MUI是什么&#xff1f; 最接近原生APP体验的高性能前端框架。 相比同类框架的优势&#xff1f; 性能和体验的差距&#xff0c;一直是mobile app开发者放弃HTML5的首要原因。 浏览器天生的切页白屏、不忍直视的转页动画、浮动元素的抖动、无法流畅下拉刷新、侧滑抽屉卡顿等问题…

移动端开发框架mui介绍

MUI 官网&#xff1a;https://www.dcloud.io/mui.html MUI 文档&#xff1a;https://dev.dcloud.net.cn/mui/ui/ 演示地址&#xff1a;https://dcloud.io/hellomui/ &#xff08;支持手机和电脑浏览器&#xff09; 开发工具&#xff1a;https://www.dcloud.io/hbuilderx.htm…

MUI(最接近原生APP体验的高性能前端框架)

MUI-最接近原生APP体验的高性能前端框架MUI: 最接近原生APP体验的高性能前端框架https://dev.dcloud.net.cn/mui/ 最接近原生APP体验的高性能前端框架&#xff0c;追求性能体验&#xff0c;是我们开始启动MUI项目的首要目标&#xff0c;轻量必然是重要特征。 MUI不依赖任何第…

关于MUI一个很实用的前端框架

今天也是我接触mui的第一天。首先先上MUI的官网上面瞧一瞧。http://dev.dcloud.net.cn/mui/window/#closewindow我这里上的不是官网&#xff0c; 我是先把他的基本能实现的功能先做了一个简单的了解。下面大家跟着我看&#xff1a; 一、Mui的组件 mui的组件都很原生比如拓展阅读…

MUI框架快速开发

文章目录 创建项目快速编写标题页面主体底部选项卡常用关键词 字体图标事件处理常见手势事件 窗口对象底部选项卡-页面切换底部选项卡窗口对象设置点击事件处理 栅格系统页面传值通过openWindow通过自定义事件 常用关键词参考 创建项目 使用MUI框架搭建项目&#xff0c;首先我…

MUI框架学习——了解MUI

MUI框架-01-介绍-准备-创建项目 从0开始快速高效学习 MUI 框架官方文档&#xff1a;http://dev.dcloud.net.cn/mui/ui/ &#xff08;1&#xff09;MUI 介绍 MUI 是什么&#xff0c;解决了什么问题&#xff1f;MUI 官方号称最接近原生APP体验的高性能前端框架简单的说就是webap…

mui框架

1 MUI介绍 1.1 MUI是什么&#xff0c;解决了什么问题。 &#xff08;1&#xff09;性能和体验的差距&#xff0c;一直是mobile app开发者放弃HTML5的首要原因。 浏览器天生的切页白屏、不忍直视的转页动画、浮动元素的抖动、无法流畅下拉刷新等问题&#xff0c;这些都让HTML5…

MUI框架初级教程

写在前面 本系列文章我们将利用mui基于网易云音乐API实现一个音乐播放器APP&#xff0c;同时基于环形或者融云实现聊天功能。作为本系列文章的第一篇&#xff0c;本文会详细讲解html5中管理应用窗口界面的Webview模块的用法&#xff0c;因为是初级教程篇不过多讲解原理部分&…