- 博客(369)
- 资源 (19)
- 收藏
- 关注
原创 GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决
该磁盘空间检查报告显示/tmp目录被异常挂载为仅1MB的overflow分区,无法满足编译需求。解决方案是:1) 先卸载当前挂载 sudo umount /tmp;2) 重新挂载为4GB容量的内存文件系统 sudo mount -t tmpfs -o size=4G,mode=1777 tmpfs /tmp。这将使用内存作为临时文件存储空间,解决编译时空间不足的问题。
2026-04-09 17:32:00
53
原创 轻量高效的动态指针数组CPtrArray实现
摘要:CPtrArray是一个轻量级的C++动态指针数组类,用于高效管理任意类型指针的存储、访问和删除。采用动态扩容机制(默认步长1024),平衡了性能和内存使用。提供Append/Add、DeleteAt/RemoveAt、GetAt、SetAt等核心接口,支持下标运算符重载。特别优化了删除逻辑防止内存越界,析构时自动释放内存避免泄漏。该类设计简洁专注,适用于单线程环境下的指针集合管理,如对象指针批量操作,可直接复用或作为工具类参考。
2026-04-09 11:12:15
125
原创 malloc_trim函数的作用
malloc_trim是glibc提供的非标准函数,用于主动将进程堆顶部的空闲内存释放回操作系统,降低物理内存占用。其核心原理是通过sbrk(-size)收缩堆空间,但仅对主分配区有效,且只能释放堆顶连续空闲块。该函数适合长期运行的服务程序在释放大内存后主动收缩内存,但不宜频繁调用。注意它不解决内存泄漏问题,且只适用于Linux/glibc环境。典型用法是在释放大块内存后调用malloc_trim(0)最大程度回收内存。
2026-04-07 08:17:38
32
原创 基于 Qt 的轻量化工业组态软件设计与实现
本文设计并实现了一种基于Qt框架的轻量化工业组态软件,解决了传统组态软件体积庞大、部署复杂等问题。该软件采用模块化架构,集成可视化图形编辑、设备数据采集、脚本扩展等核心功能,具有跨平台运行、资源占用低、启动速度快等特点。通过关键技术优化,实现了高效稳定的数据采集、脚本控制和网络通信,可广泛应用于工业机器人HMI、小型PLC监控等轻量化场景。测试结果表明,该软件体积约30MB,运行内存占用60-80MB,启动时间1.2秒,满足工业轻量化监控需求。未来可扩展更多工业组件和协议支持,进一步提升应用价值。
2026-04-02 13:51:23
49
原创 分享一个安全的CString
基于 C++ 标准库std::string封装的轻量级字符串工具类,兼容常用字符串操作需求,1无需手动管理内存,安全稳定。类提供完整的构造、赋值、拼接、比较、截取、查找、格式化等功能,包含GetAt、[]运算符重载,支持读写访问;实现Left/Right/Mid截取、Trim去空格、大小写转换、Format格式化等实用接口。所有接口做了越界、空指针等安全校验,避免程序崩溃,整体简洁易用、鲁棒性强
2026-03-31 14:13:19
365
原创 四种内存转 CString 方法深度比较
本文对比了四种在Windows MFC开发中将char*缓冲区转换为CString的方法。方法1采用逐字节拼接,性能最差;方法2通过动态内存分配实现高效转换,但需手动管理内存;方法3使用栈数组,仅适用于255字节以内的短字符串;方法4采用智能指针,兼具高性能与自动内存管理,是现代开发的最佳选择。建议优先使用方法4,无C++11环境选用方法2,短字符串场景使用方法3,避免使用方法1。
2026-03-26 18:31:59
157
原创 Tcp客户端报错原因分析
摘要:日志分析显示TCP连接测试存在三类错误:"Bad file descriptor"(无效套接字或已关闭)、"Connection reset by peer"(服务器强制断开)和"Operation now in progress"(非阻塞连接状态被误判)。主要原因是套接字管理不当:未重新创建失效的套接字、错误处理非阻塞连接状态,以及多线程环境下缺乏有效性检查。建议修复措施包括:每次连接失败后重建套接字、正确处理非阻塞连接状态,并加强多线程环
2026-03-26 16:50:52
274
原创 c++ this 指针的用途
C++中的this指针是一个指向当前对象的隐藏指针,主要用于在成员函数中访问对象自身。它的核心用途包括:1)区分同名成员变量和局部变量;2)实现链式调用;3)获取对象地址;4)处理对象自身操作。this指针只在非静态成员函数中存在,静态函数没有this指针。简单记忆:this指向调用函数的当前对象,解决命名冲突用"this->",返回对象本身用"*this"。
2026-03-26 15:10:49
165
原创 std::string 和 std::string_view
std::string与std::string_view核心区别:string拥有内存、可修改但拷贝成本高;string_view只是视图、只读但零拷贝。string适用于存储和修改字符串,而string_view最适合函数传参、只读操作等场景。关键规则:函数参数优先用string_view,存储变量必须用string。string_view能显著提升性能(不分配内存、不拷贝),但需注意其不管理内存的特性,不能用于需要修改或长期保存字符串的场景。
2026-03-26 14:27:26
241
原创 c++常见配置文件格式 JSON、INI、XML、YAML 它们如何解析
本文对比了四种常见配置文件格式(INI、JSON、XML、YAML)的特点和C++解析方法。INI最简单但功能有限;JSON通用性强,适合现代开发;XML结构严谨但冗余;YAML可读性最佳但依赖缩进。推荐选择:简单配置用INI,通用场景选JSON(最推荐),高可读性需求用YAML,遗留系统考虑XML。每种格式都提供了C++解析代码示例,帮助开发者快速实现配置读取功能。
2026-03-25 19:16:13
91
原创 现代 C++(C++11 及以后)的移动语义
对象马上就要被销毁(临时对象、函数返回值),没必要完整拷贝,直接拿走资源更快。- 移动:把原对象的资源直接“抢过来”,原对象变成空/无效状态,不复制内存。// 移动,不是拷贝。- STL 容器(vector/string/map 等)默认都支持移动。// 移动,快,a 变为空。- 右值:临时值,用完就丢(如 a + b 、 函数返回值 )- 靠 T&& 、移动构造/赋值、 std::move 实现。// 直接拿走 other 的指针/资源。- 函数返回大对象时,不再深拷贝,直接移动。
2026-03-24 19:18:37
472
原创 内存管理:堆和栈总结
这是编程里最基础也最核心的概念,特别是对于用 C++ 开发上位机和机器人程序时,搞清楚堆(Heap)和栈(Stack)的区别,能直接决定程序是否稳定、是否有内存泄漏。像快递箱,随便放哪里,用完得自己去扔掉(释放),不然留垃圾(内存泄漏),速度稍慢但空间大。- 栈 (Stack):自动管理。- 如果你在递归函数里定义大变量,或者创建超大的局部数组,程序会直接崩溃(Stack Overflow)。- 临时数组:如果大小已知且不大,用 std::vector (它内部是堆,但栈上管理这个容器对象)。
2026-03-24 10:55:10
221
原创 上位机软件架构设计-总结
本文基于C++语言设计了一套工业上位机软件架构,采用五层分层设计(前端组态展示层、核心业务层、协议适配层、数据存储层和扩展层),满足工业4.0对数据采集、实时监控和系统集成的需求。架构通过插件化协议适配、组态化配置和内存数据库优化,实现多协议兼容、高实时性和扩展性。关键技术包括异步I/O通信、线程池调度和事件驱动模型,解决了工业场景中的协议差异、性能瓶颈和网络异常等问题。该架构已在多种工业设备上验证,支持毫秒级数据采集和可靠传输,为智能制造提供了灵活高效的软件解决方案。
2026-03-24 10:00:06
411
原创 上位机软件架构设计
本文提出了一种基于C++的工业上位机软件分层架构设计,采用"前端组态展示层+核心业务层+协议适配层+数据存储层+扩展层"五层架构。前端基于Qt/MFC框架实现可视化组态配置,业务层通过变量管理、数据采集调度等模块实现核心功能,协议适配层采用插件化设计支持多种工业协议。架构通过异步I/O、内存数据库、事件驱动等技术优化实时性能,并支持脚本扩展和第三方系统对接。测试表明该架构能满足工业场景对实时性、可靠性和扩展性的需求,兼容主流工业设备和数据库系统。
2026-03-24 08:13:53
202
原创 Qt 开发机器人客户端程序
本文介绍了基于Qt框架开发工业机器人TCP客户端的关键技术与实现方法。程序采用模块化设计,通过QTcpSocket实现TCP通信,结合QTimer完成心跳保活和超时重连。重点解决了TCP粘包拆包处理、数据缓存管理、异常自动重连等核心问题,实现了稳定的长连接通信。程序采用魔数校验、功能码解析等机制适配机器人数据协议,并提供开关量、模拟量等数据接口。通过信号槽机制实现事件驱动的通信管理,具备跨平台兼容性。该方案已在实际项目中验证,能满足工业场景下机器人与上位机的实时数据交互需求。
2026-03-23 20:13:39
435
原创 什么是二级指针,用法举例
二级指针: int **pp → 指向一个 int* 类型的指针变量。// 二级指针:pp 存 p 的地址。// 一级指针:p 存 a 的地址。- 一级指针: int *p → 指向一个 int 变量。二级指针最常用的场景:在函数内部修改外面的指针变量。// p 已经被改掉了,不再指向 a。// 修改的是外面的指针 p 本身。// 三种方式都能拿到 a 的值。更实用的例子:修改一级指针。
2026-03-22 18:00:12
29
原创 Vibecoding 核心原则 + C++ 实战示例
Vibecoding是一种优化C++编程的风格,核心是通过现代C++特性减少冗余操作,提升代码效率和可读性。其关键原则包括:拒绝冗余(使用标准库替代手动操作)、精准控制(利用RAII和智能指针管理资源)、保持流畅(采用链式调用和范围for循环)以及确保性能(遵循零成本抽象)。实践示例展示了如何用范围for替代下标遍历、智能指针替代手动内存管理、范围库实现链式操作,以及精准文件操作替代逐字节处理。核心技巧是优先使用标准库、全面应用RAII、充分利用现代C++特性,避免低效的"游标式"编码。
2026-03-21 22:02:15
136
原创 volatile使用场景
告诉编译器:这个变量的值随时可能被外部改变,禁止优化,每次读写必须直接访问内存,绝不使用寄存器缓存。- 保证可见性:外部(硬件/中断/其他线程)修改后,主程序能立刻读到最新值。if (g_flag) { // 每次都读内存,不会死循环。- 禁止编译器优化:不把变量放进寄存器缓存,每次都从内存读/写。// 内存映射的硬件寄存器,必须 volatile。1. 硬件寄存器(GPIO/定时器/状态寄存器)// 主线程改 run,子线程能立刻看到。// 每次写都直接到硬件,不会被优化掉。3. 多线程共享标志位。
2026-03-21 19:08:35
191
原创 static 的作用域
在 C/C++ 里, static 的作用域完全看你把它用在什么地方,用法不一样,作用域和生命周期也完全不一样。3. 用在 C++ 类里面(成员变量 / 成员函数)- 函数内 static:作用域在函数,生命周期全局。- 类 static:作用域属于整个类,所有对象共享。- 全局/函数 static:作用域限制在当前文件。- 用途:防止命名冲突,做文件内部私有变量/函数。- 作用域:只在当前函数内部可见,外面不能访问。- 作用域:只在当前 .c 文件内部可见。- 作用域:属于整个类,不属于某个对象。
2026-03-21 18:57:38
247
原创 TCP 共享数据服务端设计 (CSHServer)
本文档详细描述了CSHServer类的设计实现,这是一个基于Linux平台的TCP共享数据服务端。系统采用多线程+事件驱动架构,支持YX/YC/字符串三种数据类型的读写和自动推送,最大支持32个客户端并发连接。核心功能包括客户端连接管理、心跳检测、异常处理等,通过互斥锁保证线程安全。文档详细阐述了类架构、数据结构、接口设计、线程同步机制及扩展性考虑,为开发维护人员提供了标准化参考。系统具有≤100ms的数据推送延迟和≤1ms的单包处理性能,适用于需要实时数据共享的应用场景。
2026-03-20 19:12:20
498
原创 TCP 共享数据服务端设计
本文档详细描述了CSHServer类的设计规范,这是一个基于Linux平台的TCP共享数据服务端实现。系统采用多线程+事件驱动架构,支持最大32个客户端并发连接,具备YX整型、YC浮点型和字符串(16个)三种共享数据类型的读写功能。核心设计包括:1)模块化线程分工(监听、数据发送、显示);2)线程安全机制(pthread_mutex_t互斥锁);3)异常处理(心跳检测、连接管理);4)可扩展性设计。系统满足数据推送延迟≤100ms、单包处理耗时≤1ms的性能要求,并通过静态常量定义确保数据结构隔离性。文档提
2026-03-20 12:23:51
46
原创 C++、C#常用语法对比
本文对比了C++和C#在基础语法和面向对象编程上的差异。在变量声明、条件语句和循环结构等基础语法上两者较为相似,但C#提供了更多语法糖如foreach和var。面向对象方面,C++支持多继承和手动内存管理,而C#仅支持单继承并提供自动垃圾回收。空值处理上C++需手动检查指针,C#则内置空安全运算符。异常处理和异步编程方面,C#的语法更为简洁。总体而言,C++给予开发者更多底层控制权,而C#通过简化语法提高了开发效率。
2026-03-16 08:08:38
168
原创 Linux 文件系统目录架构全解析
/usr :Unix 软件资源库,是系统最大的目录之一,包含子目录如 /usr/bin (应用程序)、 /usr/lib (应用库文件)、 /usr/local (用户自行安装的软件),承载了大部分用户级应用与资源。这种设计遵循 FHS(文件系统层次结构标准),让系统资源管理更清晰、协作更高效。- /var :可变数据目录,存放随系统运行不断变化的文件,如日志( /var/log )、锁文件( /var/lock )、临时缓存( /var/tmp ),是排查系统问题的关键日志来源。
2026-03-16 07:54:13
387
原创 状态机在串口接收数据解析中应用
本文介绍了状态机在串口数据解析中的应用。针对串口通信异步接收、易错位的特点,状态机模式将解析过程拆分为地址匹配、命令识别、长度确认、数据接收和校验验证等离散状态,通过有序流转确保解析准确性。以Modbus协议为例,状态机按字节匹配状态规则,实现不同命令的差异化处理,具有逻辑清晰、容错性强、适配异步等优势。实际应用中需注意边界处理,如超时重置和异常回退,保证解析稳定性。该模式是工业串口通信开发的可靠方案。
2026-03-15 21:45:09
402
原创 一套 C++/Qt 代码,Windows 工控机 + Linux 嵌入式/工控机 双平台运行经验总结
一套 C++/Qt 代码,Windows 工控机 + Linux 嵌入式/工控机 双平台运行经验总结。- 配置: ~/app/config/ 或 /etc/opt/app/- Linux 有 SIGINT/SIGTERM 、权限、守护进程。源码一套,编译两套,路径统一,区分平台,配置外置,日志规范。- Windows 无信号、无 chmod、无 root。同一套逻辑 ≠ 同一套编译、同一套路径、同一套行为。要做到:源码统一,配置分离,编译分离,部署分离。
2026-03-15 19:51:16
338
原创 RAII 是什么
std::unique_ptr / std::shared_ptr → 管理内存。- std::lock_guard / std::unique_lock → 管理锁。- 你不用手动 free/close/delete,编译器帮你保证安全释放。- std::string / std::vector → 管理内存。- C++ 中,局部对象离开作用域时,析构函数一定会被自动调用。// 异常、return、正常结束,都会释放。- 利用栈对象自动析构,保证资源一定释放。
2026-03-13 17:12:02
220
原创 C++ epoll 极简服务器代码
/ ET 边缘触发。// echo 回去。- select/poll:每次都要遍历所有 fd,O(n),并发高就崩。- 用来同时监听很多个 socket/文件描述符,谁就绪就处理谁。- epoll:内核主动告诉你哪些就绪,O(1),百万并发无压力。- 是普通 fd → read/write 处理数据。阻塞等待事件就绪,返回就绪列表,不用遍历全部。// 客户端发来数据。- 性能更高,Nginx/Redis 用它。// 1. 创建监听 socket。// 2. 创建 epoll。// 3. 等待事件。
2026-03-13 17:04:02
534
原创 松鼠语言将任意角度规化到-PI~PI
print("\n原始角度:" + test_angle + ",归一化后:" + norm_angle);print("\n原始角度:" + test_angle + ",归一化后:" + norm_angle);print("\n原始角度:" + test_angle + ",归一化后:" + norm_angle);print("\n原始角度:" + test_angle + ",归一化后:" + norm_angle);原始角度:-9.42478,归一化后:-3.14159。
2026-03-12 07:25:05
365
原创 fmod的实践
fmod()函数用于计算两个浮点数相除的余数,是处理浮点数余数计算的重要工具。通过合理使用fmod(),可以在科学计算、工程应用和图形编程中实现对浮点数余数的准确处理。
2026-03-12 06:50:16
273
原创 char lpHead[8] = “FJROBOT\0“ 定义解读
摘要:本文分析了C语言中char lpHead[8]="FJROBOT\0"写法的效果与问题。虽然该写法能正确生成8字节数组(包含FJROBOT和终止符\0),但存在语义冗余和易误解问题:字符串字面量已自动补\0,手动添加的\0多余且易让开发者误以为需要两个\0。相比之下,推荐使用显式字符列表{...}或直接"FJROBOT"的简洁写法,更符合代码清晰、无歧义的工业级编码原则。结论:该写法能实现需求但不推荐,建议优先采用无歧义的显式字符列表或标准字符串赋值方式。
2026-03-10 09:00:23
230
原创 通用文件读写封装:告别重复造轮子,让 C 语言文件操作更高效
本文介绍了一套通用的文件读写封装函数,针对嵌入式开发、工业软件等场景中常见的文件操作需求进行优化。封装采用"极简接口+严格校验"原则,提供file_opt_write和file_opt_read两个核心函数,实现了参数校验、错误处理、资源释放等全流程管理。该方案具有复用性强、健壮性高、易于维护等特点,支持二进制数据读写,可处理结构体等复杂数据类型。文中还提供了完整的代码实现和测试示例,并建议可根据项目需求扩展文件锁、追加写等功能。这套80余行的封装代码能有效避免常见文件操作错误,提升开发
2026-03-06 19:37:27
417
原创 iotdb-datanode.service 服务的状态
iotdb-datanode.service 服务的状态为 inactive (dead),并且进程被强制终止( code=killed, signal=KILL )。查看 IoTDB 配置文件(如 iotdb-datanode.properties )中的内存设置(如 heap_size ),并根据服务器物理内存进行调整。- 加载状态:已加载,启用自启( enabled ),但厂商预设禁用( vendor preset: disabled )- 启动时间:2026-02-28 18:11:15。
2026-03-02 14:27:04
176
原创 从裸指针到 std::shared_ptr:C++11 智能指针的实践之路
C++11引入的std::shared_ptr智能指针解决了传统裸指针的内存管理痛点。相比手动new/delete方式,shared_ptr通过引用计数自动释放内存,有效防止内存泄漏和野指针问题。在异步编程场景中,配合weak_ptr可安全校验对象生命周期。使用时应包含<memory>头文件,避免直接操作裸指针,推荐使用std::make_shared创建对象。这种自动化内存管理方式显著提升了代码安全性和可维护性,成为C++11时代的重要实践。
2026-02-28 14:56:51
184
原创 strlen 不能用于空指针吗
摘要:strlen函数不能处理空指针,因为它会尝试读取受保护的内存地址0x0,导致程序崩溃或段错误。使用strlen前必须检查指针是否为nullptr,建议封装safe_strlen函数统一处理空指针情况。在构造函数等场景中,对C风格字符串操作前都应先判空,这个原则适用于所有str系列函数。正确处理空指针可以避免程序崩溃,提高代码健壮性。
2026-02-26 15:38:49
152
原创 valgrind工具实操
Valgrind是一款开源内存调试工具,通过动态二进制插桩技术检测内存泄漏、越界访问等错误。它包含Memcheck等核心组件,支持Linux/x86平台,运行时性能损耗显著但精准定位缺陷。典型用法需编译时开启调试模式,通过参数检测内存问题,如未初始化变量等。安装简单(apt install valgrind),使用命令如valgrind --leak-check=full分析程序。该工具2006年获Google-O'Reilly开源奖,名称源自北欧神话。
2026-02-26 15:28:25
450
原创 万物皆文件:Linux 抽象哲学的开发之美
对于开发者而言,这一抽象带来的效率提升不言而喻。无论是读取键盘输入的字符,向显示器输出图像,还是通过网卡收发网络数据包,亦或是操作工业场景中的激光测距传感器、机器人控制模块,开发者都无需学习各自专属的驱动指令,只需调用open、read、write、close这一套基础API,就能完成所有读写交互。这一理念的精髓,并非将键盘、网卡、传感器等硬件设备强行转化为磁盘上的普通文件,而是通过一套统一的文件操作接口,为所有设备和系统资源构建起标准化的交互桥梁,彻底重塑了开发者与硬件、资源的沟通方式。
2026-02-13 21:28:25
414
原创 如果你写的C++程序,在客户现场电脑(Ubuntu)频繁崩溃,如何排查原因
Ubuntu(Linux)现场C++程序频繁崩溃,直接照做就能排查的极简实战流程,不废话、全是现场能用的步骤,按顺序执行即可。直接运行,越界、use-after-free、double free 都会直接报位置。1. SIGSEGV:空指针、野指针、数组越界、use-after-free。3. 依赖库版本(Qt、protobuf、opencv、串口库等)6. 代码检查:指针、智能指针、锁、数组边界、释放后置空。4. 权限:串口、USB、网卡、配置文件读写权限不足。5. 核对Ubuntu环境、依赖库、权限。
2026-02-09 14:06:49
333
原创 Qt 编写 TcpClient 程序 详细步骤
本文详细介绍了在Qt框架下开发TCP客户端程序的完整流程。首先说明了开发环境要求,包括Qt版本和网络模块配置。然后分步骤讲解了项目创建、界面设计(包含连接按钮、发送按钮、输入框和消息显示区)的实现方法。重点阐述了核心功能代码:通过QTcpSocket类建立连接、使用readyRead信号实现数据接收、调用write方法发送数据。文章还提供了连接状态反馈、中文编码处理等实用技巧,为Qt网络编程初学者提供了完整的TCP客户端开发指导。
2026-02-08 13:34:34
424
原创 qt 中progressBar控件,如何设置颜色,如何将10% 文字显示在进度条中心
摘要:在Qt中自定义进度条样式可通过QSS实现。主要设置内容包括:1)使用QProgressBar选择器设置整体样式(背景色、边框、圆角);2)用QProgressBar::chunk设置填充部分颜色;3)通过text-align属性确保进度百分比文字居中显示。示例代码展示了两种不同风格的进度条设置,包括调整边框、圆角、背景色和填充色等参数,并解决了某些系统下的分段显示问题。
2026-02-06 20:20:17
297
opencv-2.4.10
2025-04-17
Modbus Poll 64位
2025-04-16
GeoGebra 是一款自由且跨平台的动态数学软件、适用于各级教育 它融合了几何、代数、微积分统计等多种功能
2025-04-16
Astyle 3.6.5 源码
2025-04-16
Azure Kinect SDK 是微软为 Azure Kinect DK 硬件设备量身打造的软件开发工具包,可助力开发者高效利用该设备的各项功能进行应用程序开发
2025-04-16
git 2.32.0-64位安装文件
2025-04-16
WinSCP 是 Windows 环境下出色的开源图形化 SFTP 客户端,也支持 SCP 协议
2025-04-16
std for-each学习笔记
2025-04-16
范围基 for 循环学习笔记
2025-04-16
Restart on Crash 是一款免费的 Windows 系统进程监控软件
2025-04-16
适用于VS2022的 VA Assist(全称 Visual Assist)是一款由 Whole Tomato Software 公司开发的非常强大的 Visual Studio 插件
2025-04-15
libmodbus编译好的windows x86 版本的dll
2025-04-11
Astyle3.6.4 可执行文件
2025-03-29
boost::asio 库源码1.30.2
2025-03-27
C++11 引入的范围基 for 循环(Range-based for loop),测试代码
2025-03-27
基于OpenGL和SolidWorks的机械系统运动仿真原理及实现
2024-12-11
一个有10年工作经验的工程师对modbus协议总结 包括ModbusASCII 、ModbusRTU、ModbusTcp 报文
2024-07-04
qt5.7windows下开发环境搭建和一个例子
2024-06-28
毕业设计课题-中国象棋(人机对战)
2026-02-27
《基于 VS2010 C++ 的中国象棋程序设计与实现》配套源码
2025-08-21
简单文档管理器软件v1.0
2025-07-06
【工业控制领域】倍福控制器WES7系统语言改为中文的详细步骤及注意事项:硬件配置与软件操作指南
2025-07-05
K-Lite Codec Pack 1885 Standard 是实用的编解码包
2025-06-20
使用QMediaPlayer开发音乐播放器
2025-06-10
使用QMediaPlayer开发音乐播放器源码
2025-06-10
一个功能强大的计算器,集表达式计算、线性代数工具、超大整数计算工具
2025-04-24
VC++写的音乐播放器源码
2025-04-23
mychess250422,由VS2010 +MFC 写的中国象棋程序源码 可实现人机对抗、悔棋、走棋音效
2025-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅