BUG
Li_Zhi_Yao
花有重开日,人无年少时!
展开
-
重写QGraphicsTextItem偶现不能接收keyPressEvent
重写了QGraphicsTextItem,鼠标双击时进入编辑状态,发现有时接收不到键盘响应事件,重新双击一下又可以了,这就诡异!要是一次都收不到还能理解,这收不到重新双击一下又可以了我就不理解。.........原创 2022-07-18 17:53:39 · 632 阅读 · 0 评论 -
QtConcurrent::run不运行问题
使用QtConcurrent::run执行部分耗时数据处理执行QtConcurrent::run时,在自己电脑上运行怎么测试线程运行都正常,但是客户电脑就是跑不起来,通过返回值将线程状态打印出来,线程已经启动后来上网查了一下,QTConcurrent使用了QThreadPool线程池创建的线程,而此线程池中的最大线程数默认值为QThread::idealThreadCount()与cpu核心数目一致;然后我调用一下函数,将线程次个数打印出来,我的天,才2个,难怪不行解决方案:调用一下函数,设置线程池最原创 2022-06-29 17:36:44 · 1070 阅读 · 2 评论 -
Linux下bind绑定1024以下端口
问题描述程序跨平台移植,linux下测试的时候发现bind返回失败,提示没有权限,原来是端口小于1024,需要root权限,然后就开始研究添加root权限;因为是窗口程序,需要弹框提示输入密码,但每次运行都要输入密码太麻烦,然后就找有没有一劳永逸的办法,结果还真有解决方案:终端输入如下命令,刚好我的安装脚本也需要sudo,直接加到后面就行,重启电脑也有效sudo setcap cap_net_bind_service=+eip 需要bind小于1024可执行文件的绝对路径...原创 2022-04-13 18:57:31 · 1138 阅读 · 0 评论 -
Qt程序异常,setStyleSheet处访问冲突
问题描述:如下图所示,我已经把所有代码屏蔽,只留了构造和析构函数,结果一运行还崩溃,这就诡异,百度查了下,说是循环调用setStyleSheet。。。无奈,认真看了下警告,突然发现了这个原因分析:原来当前Widget窗口包含了一个头文件,在使用BCompare的合并代码的时候,内存对齐设置#pragma pack(1)不知道咋没了 ,这就诡异,加上就好了PS:pack指令要配对使用,谨记;另外,要是能处理的警告尽量全部处理了...原创 2021-12-28 11:18:05 · 1420 阅读 · 0 评论 -
C++ 代码不严谨的惨痛教训
项目场景:最近开发一个项目,安装环境是 D://AA//BB,AA 是公共库文件夹,BB 是子模块文件夹,AA 和 BB 文件夹的绝对路径都保存在环境变量中,BB 子模块文件夹中有一个服务程序,程序启动后也需要启动该服务程序;因为是市场上反馈了有问题,需要售后同事配合测试,结果悲剧了问题描述: 问题很块就处理,本地测试验证通过后,就邮件发给现场同事进行验证,同时邮件备注了每个库分别拷贝存放的路径,但是就是不行,我就问售后,文件是否拷贝对了,他们说拷贝好了原创 2020-11-17 14:15:50 · 265 阅读 · 0 评论 -
Linux C recv函数阻塞问题
问题描述:有个Linux项目用到TCP/IP通讯,但是recv()函数老是阻塞,没有返回;setsockopt()也设置了超时时间,同时在执行recv()之前也增加了select()查看套接字的状态,如果状态异常异常是不会执行recv()函数的 原因分析:1、recv()是Linux的系统函数,肯定不会卡死,除非Linux内核故障,基本可以排除;2、客户端向服务器端发送数据,服务器端没有接收,导致缓冲区满,客户端无法接收数据,因此客户端阻塞?等等,我不是加了超时吗?怎么还会阻塞?3、读写超时设原创 2020-11-06 18:01:58 · 4840 阅读 · 2 评论 -
C++字符串处理strcpy_s注意事项
问题描述:之前公司开发用的VS2008,后面统一升级VS2015,重新编译都是安全检查错误,类似于error C4996: ‘strcpy’: This function or variable may be unsafe. Consider using strcpy_s instead这种,为了安全考虑,那就替换吧;替换之后,却发现有个函数一直崩溃,VS2008编译的却没问题,代码逻辑没改,并且用的是同一份测试数据,示例代码如下:#include <windows.h>#include原创 2020-10-28 16:21:58 · 914 阅读 · 0 评论 -
C++全局常量声明和定义extern
问题描述:在一个源文件A.cpp中声明了一个全局常量,在源文件B.cpp中定义了该全局常量,结果在A.cpp中使用全局常量报错了,错误如下:error LNK2001: 无法解析的外部符号 “int const g_iCount” (?g_iCount@@3HB) fatalerror LNK1120: 1 个无法解析的外部命令A.cpp源码如下:#include <iostream>using namespace std;extern const int g_iCount;原创 2020-10-21 14:32:17 · 1123 阅读 · 0 评论 -
C++ Run-Time Check Failure #0 错误记录
C++ Run-Time Check Failure #0 错误记录最近工作中,需要调用第三方SDK, 我这边是动态调用DLL文件,加载DLL库和导出函数地址都成功了,但是在调用的时候却报错弹框了,调试的时候弹框如下:错误描述是函数调用约定不一致破坏了ESP的值,处理如下:1、代码中,函数声明 typedef void (__stdcall* pFun)(),使用调用规范为__stdcall,于是查看项目属性的调用约定2、点击【项目】->【属性】->【配置属性】->【C/C++】原创 2020-10-15 14:20:07 · 1106 阅读 · 0 评论