首页 > 编程语言 >MFC/C++学习系列之简单记录1——错误解决与Dialog移植

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

时间:2024-12-22 21:27:12浏览次数:10  
标签:MFC 界面 ogx C++ 边框 Dialog 移植

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的问题解决记录!

标签:MFC,界面,ogx,C++,边框,Dialog,移植
From: https://blog.csdn.net/arriettyandray/article/details/143461893

相关文章

  • MFC/C++学习系列之简单记录8——消息映射
    MFC/C++学习系列之简单记录8——消息映射前言消息映射机制DoDataExchange函数BEGIN_MESSAGE_MAP和END_MESSAGE_MAP宏与WPF对比总结前言每天学习一点MFC的小知识!消息映射机制说起来很高大上,其实就是前端界面控件和后台代码命名的绑定。当前端控件执行某些操......
  • 【C++】剖析运算符重载和赋值运算符重载
    -----------------------------------------------------begin------------------------------------------------------运算符重载:当运算符被用于类类型的对象时,C++语言允许我们通过运算符重载的形式指定新的含义。C++规定类类型对象使⽤运算符时,必须转换成调用对应运......
  • C++超市外卖小程序-计算机设计毕业源码62482
    摘要随着社会生活节奏加快和消费习惯的变化,外卖服务成为人们日常生活中不可或缺的一部分。超市外卖作为新兴业态备受关注,然而传统外卖平台在推荐精准度和用户体验方面存在挑战。本研究旨在基于协同过滤算法,结合C++语言和MySQL数据库,设计开发一款超市外卖小程序,以提升用户点......
  • C++, 模板元编程, 凭借辅助的模板结构的特化 , 从而以类型控制模板类的分支
    u++真是学无止境,遍地地雷,哦不,遍地黄金。看ue序列化中的TArray有感,特节取部分代码保存,希望能多切近ue的编码经验半分。 //...template<typenameT>structTCanBulkSerialize{enum{Value=false};};template<>structTCanBulkSerialize<unsignedint>{enum{Value......
  • C++模板--类模板
    一篇文章带你走进类模板的世界!!!前言上一篇文章的链接:https://blog.csdn.net/hujiahangdewa/article/details/144630185有了上一篇文章的铺垫,我们再来看看类模板。其实就是要看template这段代码的后面跟的是什么,如果跟的是函数的定义,那么它就是一个函数模板,如果跟的是......
  • 【c++修炼之路】从零到英雄:c++的传奇进化史
      ......
  • c转c++
    C转C++以下内容从bilibili博主别喷我id提炼学习基本输入输出#include<iostream>//如同<stdio.h>,皆为输入输出库usingnamespacestd;//命名空间以防多库有同名函数intmain(){intn;cin>>n;//输入cout<<"输出:"<<n<<endl;//endl为换行......
  • 【C/C++】手搓项目中常用小工具:日志、sqlit数据库、Split切割、UUID唯一标识
    每日激励:“不设限和自我肯定的心态:Icandoallthings。—StephenCurry”绪论​:本章将写到一些手搓常用工具,方便在项目中的使用,并且在手搓的过程中一些函数如:日志宏中的__VA_ARGS__接收可变参、SQLlit数据库的C语言接口、Split中string的使用,以及UUID中随机数的......
  • COM(Component Object Model)接口是微软推出的一种用于软件组件间通信的技术,它允许不同
    COM(ComponentObjectModel)接口是微软推出的一种用于软件组件间通信的技术,它允许不同编程语言(如C++,C#,VB等)之间的对象进行交互。COM的核心概念包括接口、代理、类、类型库等,它广泛应用于Windows操作系统中。接下来我将详细介绍这些概念及它们在Windows运行时中的应用。1. COM......
  • C++ 面向对象编程:友元、
    友元:让一个类或函数,能够访问另一个类的私有成员。友元关键字为friend。友元有三种:第一种是全局函数作为友元,第二种是类作为友元,第三种是成员函数作为友元第一种是全局函数作为友元,见以下代码:#include<iostream>#include<string>usingnamespacestd;classPeople{  ......