MFC/C++学习系列之简单记录1——错误解决与Dialog移植

embedded/2024/12/22 9:09:05/

MFC/C++学习系列之简单记录1

  • 前言
  • MFC application已停止工作
  • Dialog移植
  • MFC中的去边框设置
  • 总结


前言

最近接触MFC,接手一个项目,基于MFC架构编写的,在跑通代码的过程中出现的问题进行简单记录。


MFC application已停止工作

在代码移植过程中,直接build代码,提示MFC application已停止工作。使用Debug进行单步运行,在运行某个指针指向的时候,突然报错,会提示access violation

从其他角度查资料,发现其实可能是指针未指向使用的存储区。在Debug的过程中,我发现xx->yy,其中yy这个定义其实是空指针,再仔细查看,没有定义yy这个指针。

当把yy这个指针定义后,问题就决解了。

这个问题其实主要原因是在没有了解源码的过程中,直接运行程序。然后解决很明显的错误后。才意识到,项目负责人给的两个程序的同一个类在调用过程中的不同命名问题导致。

tips:
软件文档的重要性:在一些地方需要备注。
不同人的开发编程不同,需要有一定的开发规则设置。

Dialog移植

在接收一个项目时,给我又丢了一个活。直接移植MFC的两个界面到另一个项目中。但是我不熟悉MFC的使用。通过摸索,建议使用.ogx。这个可能只有VC6.0才能使用。

  • 第一步:生成.ogx文件。
    在需要移植的项目界面中,右击选择dialog相关联的类,选择Add to Gallery

  • 第二步:添加.ogx文件。
    工程——添加工程——components。这里一般路径会默认与生成.ogx的路径一致。选择对应的.ogx会直接插入。插入的内容包含Dialog和对应的类。

MFC中的去边框设置

在没有使用.ogx时,MFC的界面不像C#中的界面移植,直接复制代码。准备建立新的Dialog,在建立新的Dialog后,需要考虑去边框的设置。

  • 第一方面:对话框样式设置。边框选择None。
  • 第二方面:对话框样式。因为当去边框需要嵌入别的对话框时,需要额外再设置样式。在别的Dialog中使用该界面需要设置为child属性,否则无法加载出该界面。

在这里插入图片描述


总结

最近遇到MFC的问题解决记录!


http://www.ppmy.cn/embedded/147771.html

相关文章

【python因果库实战10】为何需要因果分析

这里写目录标题 为何需要因果分析数据估计因果效应因果模型应用因果分析 估计观测效果描述性统计和因果估计之间的差异分析总结 为何需要因果分析 在本例中,我们将快速进行一次因果分析,以估计戒烟对十年内体重增加的因果效应。 我们将这些结果与观察到…

基于 JAVA 的 SSM 网络直播带货查询系统:JSP 主导的设计与实现架构

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于网络直播带货网站当然也不能排除在外,随着网络技术的不断成熟,带动了网络直播带货网站,它彻底改变了过…

包管理器NPM

NPM是Node.js中的包管理器。允许我们为Node.js安装各种模块,这个包管理器为我们提供了安装、删除等其他命令来管理模块。注意:我们必须有一个package.json文件或者node_modules目录安装模块到本地。 执行命令 npm i module -S/D 安装模块后,…

在window环境下安装openssl生成钥私、证书和签名,nodejs利用express实现ssl的https访问和测试

在生成我们自己的 SSL 证书之前,让我们创建一个简单的 Express应用程序。 要创建一个新的 Express 项目,让我们创建一个名为node-ssl -server 的目录,用终端cmd中进入node-ssl-server目录。 cd node-ssl-server 然后初始化一个新的 npm 项目…

VS Code Copilot 与 Cursor 对比

选手简介 VS Code Copilot:算是“老牌”编程助手了,虽然Copilot在别的编辑器上也有扩展,不过体验最好的还是VS Code,毕竟都是微软家的所以功能集成更好一些;主要提供的是Complete和Chat能力,也就是代码补全…

Windows server服务器之网络按管理(创建IPsec保护网络安全)

14.2 任务:创建IPsec保护网络安全 对IPsec 两个方面的作用。(必须清楚) 任务实施的步骤: 1.创建本地安全策略 2.创建管理IP筛选器列表和筛选器操作 3.打开IP地址添加向导 4.筛选器列表和筛选向导中的内容要对应 5.完成IP筛…

使用“NodeMCU”、“红外模块”实现空调控制

项目思路 空调遥控器之所以能够实现对空调的控制,是因为它能够向空调发射出特定的红外信号。从理论上来说,任何能够发射出这种相同红外信号的红外发射器,都可以充当空调遥控器(这也正是手机能够控制多种不同品牌空调的原因所在&a…

模具制造之三维扫描和逆向建模

模具是在工业生产中,用各种压力机和装在压力机上的专用工具,通过压力把金属或非金属材料制出所需形状的零件或制品,这种专用工具称为模具。模具的形状决定着这些产品的外形,模具的加工质量与精度也就决定着这些产品的质量。 汽车挡…