- 博客(15)
- 收藏
- 关注
原创 libmodbus报文打印、记录;适配多个版本
不同版本的libmodbus中,读写报文有着不同的区别,但是我都做了适配。函数命名规则就是在原先的函数的名字加上_msgs。//这是库本身读取功能码3的函数/*这是新增函数,用来接收报文;参数:sbuf:下发报文slen:下发报文长度rbuf:上送报文rlen:上送报文长度(当接收报文失败,长度为0)返回值:保持和libmodbus一致*/标题中写到“适配多个版本”,而不同的版本在不同分支中。
2024-01-12 16:05:25 494
原创 Qt::UniqueConnection和lambda一块用无效
那么用了Qt::UniqueConnection也会出现槽函数被多次调用的问题。如果槽函数是lambda。
2023-12-07 11:29:21 738
原创 protobufLNK2019 无法解析的外部符号 “__declspec(dllimport) public: void __thiscall google::protobuf::io::Coded
假设用3.10.0的protoc生成的.cc .h文件,到3.13.0的库中去使用,肯定链接失败!protoc.exe的版本和你的程序依赖的protobuf版本是否同一个。已经用了预编译宏——PROTOBUF_USE_DLLS,还是不能解决。只是同一个版本,就能解决!
2023-12-05 10:12:31 404
原创 Libcurl中SFTP和FTP删除,重命名,新建文件夹操作
网上关于libcurl的ftp和sftp的使用,已经非常全面了。在我开发的工程中,发现对于libcurl中一些命令的使用网上的文章比较少。所以这也是我写这篇文章的原因。
2022-08-10 16:10:22 3145
原创 vcpkg的CMake failure output和English language解决办法
vcpkg的CMake failure output和English language问题vcpkg was unable to detect the active compiler's information. See above for the CMake failure outputWarning: The following VS instances are excluded because the English language pack is unavailable.
2022-01-21 12:00:02 1273
原创 Visual Studio 2017 运行、调试使用CMake构建的多可执行程序项目
在 Windows 环境下,笔者主要通过 Visual Studio 进行较大型项目的查看和运行调试。这里记录下使用 Visual Studio 编译、运行和调试可能包含有多个可执行程序的多文件项目的方法,特别的,这里记录的是使用 CMake 进行自动化构建的多文件项目。 使用 Visual Studio 打开项目 目前许多大文件项目使用跨平台自动化构建系统 CMake 进行项目内部依赖关系的管理。简单而言,CMake 使用统一规则的配置文件CMakeLists.txt 记录...
2021-05-26 18:02:22 3007
原创 字符串“16进制”,转成真正的“16进制
目录十六进制文本 与 十六进制数据 转换十六进制字符串十六进制文本十六进制数据格式化使用方法结果演示函数代码十六进制文本 与 十六进制数据 转换十六进制字符串十六进制文本十六进制数据格式化纯C编写,支持空格与逗号分隔符 ,支持大小写 ,无视0x前缀,无视多个分隔符;甚至"0xaa,,,,,,, f f0,0f 0xb acddfe 0xGFff\0"也可以识别,代码逻辑可能存在漏洞,还需要各位自己仔细甄别。代码给出来是给大家参考学习的,代码写的不...
2021-03-30 09:42:47 2237 2
转载 vbox虚拟机vdi文件用VMware打开
方法一:使用VirtualBox自带的VBoxManage来进行格式转换:1、安装VBoxManage2、使用VBoxManage格式转换指令转为Vmware能识别的(vmdk)格式方法二:vdi转成VM虚拟机文件vmdk文件并生成vm虚拟机配置文件1、vbox导出ova虚拟机文件2、用VM虚拟机打开ova文件方法三:我们将使用qemu-img工具。QEMU磁盘镜像工具(这个要在能开机的情况下开始,安装qemu-kvm可能导致virtualbox无法启动)1、..
2021-03-08 14:24:24 4933
原创 boost库的安装(win+vs2017)
1、boost库--下载和安装(win+vs2017)1.1、哪里可以获取boost的源码和库文件?1.2、安装过程1.2.1、先执行 .bat文件1.2.2、然后执行 b2.exe文件(时间较长,耐心等待)1.3.1、操作vs中的“包含目录”,“库目录”1.3.2、包含目录1.3.3、库目录1.4、1、boost库--下载和安装(win+vs2017)1.1、哪里可以获取boost的源码和库文件?boost官网https://www.boos...
2021-02-23 17:53:27 303
转载 linux终端假死问题,解决办法
有时在linux下shell终端中,会突然出现终端应用卡死,无法接受键盘输入, 但是其它分屏, 系统都是正常的。这本来是一个终端的很老的功能, 叫软件流控制(XON/XOFF flow control),具体就是当client(terminal emulator), 也就是常用的终端模拟器无法接受更多的数据的时, 终端会发送一个 “XOFF” 信号 告诉发送数据端暂停发送, 直到收到"XON"信号,其中发送的 “XOFF” 是告诉内核的 tty 驱动将正在发送数据的进程设置为休眠状态, 直到 tty 驱动发
2020-07-17 10:28:28 6821 3
原创 代码区,常量区,静态区,堆区,栈区的区别
代码区:存放程序的代码,即CPU执行的机器指令,并且是只读的。常量区:存放常量(程序在运行的期间不能够被改变的量,例如: 10,字符串常量”abcde”, 数组的名字等)静态区(全局区):静态变量和全局变量的存储区域是一起的,一旦静态区的内存被分配, 静态区的内存直到程序全部结束之后才会被释放堆区:由程序员调用malloc()函数来主动申请的,需使用free()函数来释放内存,若申请了堆区内...
2020-03-18 23:04:14 221
原创 关于C++中,类的成员中不能有宏定义。
关于第二个 c++ 特有的问题:预处理:头文件包含、宏替换、条件编译、删除注释 不做语法检查因为预处理,是要进行宏替换,但是c++在预编译阶段是不能够访问类的成员,所以在c++中没法进行宏替换。所以在c++中,类的成员中,不能有宏定义。...
2020-03-17 23:57:10 1104 1
原创 类型的转换
1、自动类型转换(从小的类型转换到大的类型)、void test02(){ int data1 = -20; unsigned int data2 = 10; //有符号data1和无符号data2参加计算的时候 //会先将data1转换成无符号(-20的补码很大的正数) //很大的数 + 10 必然 >0 if(data1+data2 > 0) { prin...
2020-03-17 23:33:42 91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人