MFC/C++学习系列之简单记录4——错误解决与错误提示

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

  • 前言
  • Local function definitions are illegal
  • Assert的使用
  • Error link 2001 Unresolved external symbol
  • Cannot convert parameter 2 from unsigned char 1024 to const char * types pointed to are unrelated
  • 总结

前言

针对最近更改遇到的问题,进行简单记录!


Local function definitions are illegal

在更改代码时,需要将某个数据的输入变更从多个数据抽出一个数据进行输入,需要使用for循环来判断,进行单个输入。由于VC 6.0与之前使用的VS 2019不同,无法将大括号收起,并且无法使用鼠标点击括号来找到对应括号。当我输入很多大括号后,在程序中需要找到对应的地方输入另一个括号。

在运行程序后,报错。并且提示的位置为增加程序后的函数开头位置。通过查询一些资料,发现提示大括号问题。确实发现自己的括号没有对应,缺少一部分。

如果在程序调试中出现该错误提示,并且错误提示在某个函数最开始的地方,例如:void XX()。那么可以考虑是括号问题。

在代码编程中,需要谨慎注意这一类的错误,防止二次出现!

Assert的使用

在运行程序时,突然提示错误,查询错误提示,是Assert(xx)

Assert是一个常用的宏,可以在调试过程中检查程序的逻辑错误。当函数内部不满足条件时,程序运行会报对应提示错误。

例如:

cpp 复制代码
int x=1;
ASSERT(x<0);

因为x不满足条件,因此程序在运行过程中会提示。

连接错误,编译时无法在已有文件和库中找到引用的函数、变量或标签的定义。

在使用某个文件类的函数,发现在头文件中没有添加该函数的.h文件,添加文件后解决问题。

Cannot convert parameter 2 from unsigned char 1024 to const char * types pointed to are unrelated

从unsigned char转换到const char类型时出现错误,是因为这两种类型是不相关的。unsigned char是一个基本数据类型,而const char 是一个指向常量字符的指针类型。

还是别人的源代码在.h文件中定义了一个数组,而在使用的过程中又定义了一个名称一样,但是数据类型不同的变量,而在代码移植过程中没有发现,运行报错才知道问题。在函数中根据实际需要进行函数定义和使用!

对于一些变量的使用还是最好注释,一是方便别人查阅;二是避免出现全局和局部变量名称一致,而类型不同的情况!


总结

本文主要介绍了在修改程序过程出现的问题,并通过查询资料与自身经验解决错误问题,同时学习到有关代码中设置错误提示的ASSert,可以用于程序中判断逻辑是否有问题!

相关推荐
MSTcheng.19 小时前
CANN ops-math算子的跨平台适配与硬件抽象层设计
c++·mfc
平安的平安2 天前
面向大模型算子开发的高效编程范式PyPTO深度解析
c++·mfc
杜子不疼.2 天前
基于ATVC模板库的Ascend C Vector算子快速开发指南
c语言·开发语言·mfc
范纹杉想快点毕业2 天前
实战级ZYNQ中断状态机FIFO设计
java·开发语言·驱动开发·设计模式·架构·mfc
范纹杉想快点毕业2 天前
状态机设计与嵌入式系统开发完整指南从面向过程到面向对象,从理论到实践的全面解析
linux·服务器·数据库·c++·算法·mongodb·mfc
小黄人软件4 天前
【MFC】底层类显示消息到多个界面上。 MFC + 线程 + 回调 的标准模板 C++函数指针
c++·mfc
范纹杉想快点毕业5 天前
嵌入式系统架构之道:告别“意大利面条”,拥抱状态机与事件驱动
java·开发语言·c++·嵌入式硬件·算法·架构·mfc
范纹杉想快点毕业6 天前
嵌入式实时系统架构设计:基于STM32与Zynq的中断、状态机与FIFO架构工程实战指南,基于Kimi设计
c语言·c++·单片机·嵌入式硬件·算法·架构·mfc
fqbqrr7 天前
2601Mfc,自动化excel
自动化·excel·mfc
fqbqrr7 天前
2601Mfc,自动化excel2
自动化·mfc