问题回溯记录
蜀黍@猿
热衷技术,保持热情
2024年 进入Qt\c#上位机、MCU开发、3D渲染领域学习
展开
-
使用sizeof()计算内存大小,所踩坑
1.问题出现场景软件在运行过程中,发现底层回调上来的字符串数据,会被截断。2.问题原因底层回调数据,经调试数据是完整的。问题出现在客户端软件,并且大概率是字符串拷贝出现的问题。因此找到几处对回调数据拷贝的操作,发现有一处拷贝,使用了sizeof计算字符串长度。问题可能出现在这个计算上,于是,我单独使用demo确认这个计算的结果,结果发现,当我使用未赋值变量进行长度计算时,结果都是32,但是我将变量赋值后进行计算,结果为字符串长度。可以确实是这里的问题。原创 2022-09-06 23:19:31 · 185 阅读 · 0 评论 -
客户端开发界面和任务分离
1、问题引入项目开发过程中,从界面触发某个事件,有网络模块响应处理。界面由高优先级线程处理,耗时逻辑由低优先级线程处理。由于界面弹窗是模态的,后续界面切换需要先关闭弹窗。我在其他线程中调用关闭函数,这样可以关闭模态弹窗,也可以该线程中处理其他耗时任务。但是会偶现崩溃。2、原因多线程中处理模态窗口时,界面线程处理界面事务,不可以跨线程处理。可能导致窗口崩溃,模态窗口显示的时候,除了父窗口不可用之外,其他的窗口都是可用的,如果需要的一个资源在别的地方被释放了,而在模态窗口中使用的时候,没有判断可能就原创 2022-03-02 13:15:23 · 119 阅读 · 0 评论 -
同一局域网不同网段ip实现通信
1.使用场景电脑使用网段ip为172.23.0.0/16,设备ip为192.168.1.0/24。将电脑和设备通过交换机连接起来,满足了电脑和设备处于同一局域网不同网段,不能进行网络通信。为了能够进行通信,比如,进行设备的密码重置等,都需要能够通信才能完成。2.参考方案可以在电脑的网络设置里的高级配置中,添加一个和设备处于同一网段的ip。需要注意的是,添加的ip之前要先使用ping命令判断局域网中是否存在相同ip的设备,为了避免ip冲突。有时你会发现ping不通的ip,添加之后也有不通的情况。这原创 2022-02-27 10:53:01 · 23246 阅读 · 0 评论 -
内存映射文件(memory mapped file)使用问题
1、问题使用win32编程时,发现通过"sys/mman.h"引用头文件时,系统提示:无法找到目标文件。2、原因查阅相关资料后,了解mmap函数是Linux上对于内存映射文件技术的实现,Windows上对应的API是CreateFileMapping、MapViewOfFile。所以包含头文件是windows.h,若报重复包含则去掉windows.h即可。3、扩展内存映射文件原理是直接将映射到磁盘省掉一次filesystem的抽象层拷贝,当然也失去了保护。项目中建议使用boo.原创 2022-02-26 10:17:35 · 833 阅读 · 0 评论