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

ops/2024/12/27 3:52:02/

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是一个常用的宏,可以在调试过程中检查程序的逻辑错误。当函数内部不满足条件时,程序运行会报对应提示错误。
例如:

int x=1;
ASSERT(x<0);

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

Error link 2001 Unresolved external symbol

连接错误,编译时无法在已有文件和库中找到引用的函数、变量或标签的定义。
在使用某个文件类的函数,发现在头文件中没有添加该函数的.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,可以用于程序中判断逻辑是否有问题!


http://www.ppmy.cn/ops/145280.html

相关文章

反射探针.

一、在unity场景中如何添加反射探针&#xff1f; 可以先添加一个空对象&#xff0c;在空对象的上方添加反射探针组件&#xff08;Reflection Probe&#xff09; 反射探针的类型有&#xff1a;Baked、Custom、Realtime 其中“Baked”反射探针类型&#xff0c;可以将场景中的静态…

图解HTTP-HTTP报文

参考资料&#xff1a;图解HTTP HTTP报文 用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP请求报文&#xff0c;响应端&#xff08;服务器端&#xff09;的叫做响应报文。HTTP报文本身是由多行&#xff08;CR LF作为换行符&#xff09;数据行构成的文本。 请求报文及响…

3001. 捕获黑皇后需要的最少移动次数

3001. 捕获黑皇后需要的最少移动次数 题目链接&#xff1a;3001. 捕获黑皇后需要的最少移动次数 代码如下&#xff1a; class Solution { public:int minMovesToCaptureTheQueen(int a, int b, int c, int d, int e, int f){if (a e && (c ! e || !in_between(b, d…

生产力利器,Mac 系统优选,keychron K10Max 三模键盘体验分享

生产力利器&#xff0c;Mac 系统优选&#xff0c;keychron K10Max 三模键盘体验分享 哈喽小伙伴们好&#xff0c;我是Stark-C~ 我在不久前也是跟风入手了Mac mini M4&#xff0c;作为多年的黑苹果用户&#xff0c;我这也算是正式转正了~。 选购理由 不过使用Mac mini的小伙伴…

Element-ui table组件:单元格未溢出,悬浮出现popover提示框

问题视图&#xff1a; 问题定位&#xff1a; 源码中&#xff0c;给开启溢出提示的列单元格都添加了class,并且宽度为实际列宽-1。 若单元格内容宽度100%撑开&#xff0c;则会计算为溢出情况。 处理方法&#xff1a; 单元格内容宽度设置100%-1。

[react]searchParams转普通对象

const [param, setParam] useSearchParams()const params Object.fromEntries(param.entries());console.log(params); 如果是params的话,就是用返回一个对象, const p useParams()console.log(p); 为什么是对象?难道param还能有2个字段? 还真是! 给2个占位符 {path:…

JDBC报错

报错信息 Exception in thread "main" java.sql.SQLException: The server time zone value is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to …

HTML 画布:创意与技术的融合

HTML 画布:创意与技术的融合 HTML 画布(<canvas>)元素是现代网页设计中的一个强大工具,它为开发者提供了一个空白画布,可以在上面通过JavaScript绘制图形、图像和动画。这种技术不仅为网页增添了视觉吸引力,还极大地丰富了用户的交互体验。本文将深入探讨HTML画布…