当前位置:网站首页>远程控制项目遇到的bug
远程控制项目遇到的bug
2022-08-09 00:48:00 【沈跃泉】
远程控制项目遇到的bug
1 函数名后少加括号
解决方法:应改为:InitSockEnv()
2 预处理器添加安全警告等信息
_CRT_SECURE_NO_WARNINGS
3 平台bug,x64换成x86
4 没有添加本机字节序转为网络字节序的bug
htonl就是把本机字节顺序转化为网络字节顺序
5 虚拟机网络连接bug
6 BUFER_SIZE缓冲区设置太小,导致界面卡顿,对话框无法移动
7 屏幕分辩率问题和鼠标坐标转换问题
8 按回车键的bug,解决方法是重写OnOk事件。
9 静态变量声明后,没有实现
类中静态成员变量只有声明,没有实现。
10 VS的Bug:函数参数错误,第6个参数错误,结果提示成第一个参数错误
11 网络多线程的bug
1 两个线程同时触发,鼠标和屏幕,线程同步和数据安全
鼠标和监控冲突。鼠标回应答(大概10字节)和 监控回图片(几百k) ,缓冲区一样,图片和应答字节互相产生影响,导致了多线程发送消息会产生冲突的bug,鼠标和监控的应答会产生混乱 服务器一次只能处理一个命令,可能会连接失败。
2 size和index关系没理清
size和index关系没理清,导致接收的数据包和缓存区处理有问题,监控画面的显示无法正常更新,解决方法:memmove(pBuffer, pBuffer + size, index - size)。
12 运算符优先级问题
运算符优先级可能导致程序出现bug,优先级:”>,<,>=,<=”大于”==”大于”&&”大于”||”……
解决方法:加上括号以防止出错,这样也便于阅读
13 内存泄漏
堆区开辟的内存没有释放,引入vld,方便排查内存泄漏的bug。需要包含头文件#include <vld.h>
14 注册表开机自动启动权限
设置注册表开机自动启动权限时mklink缺少一个空格指定为System32路径,强制转换到了SysWOW64路径下
开机启动的时候,程序的权限是跟随启动用户的
如果两者权限不一致,则会导致程序启动失败
解决方法:
【复制这些dll到System32下面或者SysWOW64下面】
System32下面,多是64位程序 SysWOW64下面,多是32位程序
15 引用头文件bug
头文件中的函数被多次引用,解决方法:将定义改为声明,在源文件当中定义。一个项目当中,定义只能有一次,可以有多次声明。
边栏推荐
猜你喜欢
随机推荐
4-3 Matplotlib库 条形图
cmd切换硬盘的命令,从C盘切换到D盘怎么操作
低代码接口开发平台——YesApi(API+数据表单)
4-10 Matplotlib 多图布局
轻量化神经网络--MobileNet v3学习记录
torch.utils.data.DataLoader
WPF效果第一百九十四篇之伸缩面板
aspx结尾文件网站的发布过程
在Ubuntu/Linux环境下使用MySQL:修改数据库sql_mode,可解决“this is incompatible with sql_mode=only_full_group_by”问题
tf.pad()--填充操作
pycharm开启鼠标滚动调节字体大小
浅谈自定义应用层协议与UDP的报文结构和注意事项
走向合规化的虚拟人直播
Unity3D小白学习日记(02):U3D如何连接SQL SERVER数据库(亲测可行!)
JSON basics, transfer JSON data, and introduce four mainstream frameworks, jackson, gson, fastjson, and json-lib!
js文件的处理
【学习-目标检测】目标检测之—FPN+Cascade+Libra
基本控件属性
LeetCode精选200道--双指针篇
入门数据库Days6