当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 崩溃边缘的救赎

崩溃边缘的救赎

2018年09月21日  | 移动技术网IT编程  | 我要评论

发展党员公示范文,电驴被封,板报版面设计图

这几天写了一个小项目,有那么几个bug总让我印象深刻,其实都不是什么大问题,倒是一些不起眼的细节,反而就是他们,几经让人抓狂.还是要记录下来,时刻提醒自己,以后这样的错误不能再犯.

一.  开发环境的bug

本项目中,我采用的是vs2013+qt5.

1.  因为项目需要,需要新增加一些库文件和头文件,所以在项目的的属性配置中添加了相关库文件和头文件的路径.但是.....不知何时,眼盲般的竟将库文件加到了vc++目录的库目录里面.(如下图)

我并没有删除以前的任何路径,只是添加了一个新库的库路径,但是在后来开发项目的过程中,遇到了问题:  无论怎样,我都调用不了新增的库目录中的文件夹下面的文件.(附图解释如下:)

当时一脸茫然,不知道问题出在了哪里,由于也不知道出问题的引用是在库文件的二级文件夹下,所以很崩溃,查了一下午的代码逻辑和一晚上的引用配置.当时真心想剁手啊,,,,

2.tcp socket通信在debug模式下正常通信,,在release模式下连接不成功

这个问题主要涉及到了vs的debug和release调试模式的不同,由于我在项目中用到了tcp socket通信,所以需要在项目属性->配置属性->连接器->输入->附加依赖项->添加qt5networkd.lib.因为习惯问题,一致都是在debug的调试模式下,所以debug调试模式下通信成功了以后,开心的正准备提交的时候,发现release模式下服务器那端连接不上.这就尴尬了,我问了一下度娘,有人说是电脑的防火墙的问题,然后我就关闭了防火墙,结果两个模式下都连接不上了,后来终于知道,在release模式下添加的应该是qt5network.lib.这样就可以正常通信了.

还有,,当项目的.exe文件不在win32下面的debug和release下时,去看项目属性->配置属性->常规->输出目录,,,这里一般是$(solutiondir)$(platform)\$(configuration)\,如果你改了,自然.exe文件就在别处了.

二. 编程开发中遇到的bugs

1. 自定义的信号与槽,点击相应的控件没反应,,第一件事-->去看有没有声明是signals和是slots..一般肯定是这种问题,如果也不是这种问题,那就是代码的逻辑问题了.我出现的问题是:一个界面跳转到另外一个界面时,会新new 一个对象,这样的话, 发信号的是上一个界面,而接收的是新界面.所以接收不到信号.响应不了,解决的办法就是设计成到单例模式.在每次跳转界面时判断两外一个界面是否为空,为空时再new,这样就接受得到信号了.

2. 存储一些项目的配置信息,或者初始化信息时,如果信息的数据格式为结构体,个人建议用.ini文件.利用qsetting进行存储,读写都非常方便,当然,也可以试着用qfile和execl进行存储,但是个人觉得很麻烦.(下图为.ini的读写代码)

 

 说明:初始化文件(.ini)在项目文件下面.和.pp文件在一起.

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网