- 博客(401)
- 资源 (34)
- 收藏
- 关注
原创 千万不要学编程!
今天我在CSDN博文中,不讲技术,不讲技术,不讲技术!重要的事情说三遍!我要说的是,千万别学编程,为什么说“千万不要学编程”呢?我们可以先反过来讨论“我们为什么要学编程?”这个问题讨论清楚了,你也就明白我为什么说千万不要学编程了!学习编程应该是这样的逻辑吗?在讨论为什要学编程这个问题之前,我想各位接触过编程的伙伴们已经接受过编程的学前教育了,当然这个开启你学前教育的人或许是你的老师或许是你的玩...
2019-01-03 12:30:59
39615
31
原创 再谈C#的抽象类和接口:从“适配器”到“毛坯房”的设计哲学
在C#面向对象的学习路径中,接口(Interface)和抽象类(Abstract Class)是两个绕不开的核心概念。很多开发者虽然能熟练写出语法,却常常混淆二者的设计意图。今天,我想从一个更生活化的视角重新解读它们:接口是“适配器”,抽象类是“毛坯房”。这个比喻或许能帮你跳出语法的桎梏,真正理解它们的本质差异。
2026-07-29 11:12:22
395
原创 首次在arduino中使用Raspberry Pi Pico
当 Raspberry Pi Pico 插入电脑后显示为 RPI-RP2的 U 盘(即您提到的 U 判),说明它当前正处于 UF2 引导加载程序(Bootloader)模式,而不是正常的运行状态。本文将一步一步告诉你如何烧录。
2026-06-26 16:17:11
415
原创 PyInstaller 打包后报错 No module named ‘serial‘ 的深度排查与根治
python制作串口调试助手遇到的打包问题。其实不是pyserial包的安装问题,是打包的时候找不到他的确切位置。
2026-06-21 11:53:52
370
原创 PyQt6/PySide6 UI开发全攻略:从命令行到IDE集成
本文对比了PyQt6/PySide6中UI设计的两种实现方式:静态预编译和动态加载。静态方式通过命令行工具(pyuic6/pyside6-uic)将.ui文件转换为.py文件后导入使用,适合自动化脚本和持续集成;动态方式则直接在运行时加载.ui文件,更加灵活。文章详细介绍了两种方式的代码实现模式,包括核心UI加载示例和PyCharm外部工具配置方法,帮助开发者根据项目需求选择适合的工作流程。两种方式各有优势,掌握它们能提升Qt界面开发的效率。
2026-05-06 12:36:19
886
原创 听AI的血的教训!PPOCRLabel部署与PyQt5的安装避坑-百分百成功!
本文旨在解决pyqt5的安装以及ppocrlabel的部署问题,提供国内镜像地址。https://gitee.com/haigear/PPOCRLabel.git
2026-05-05 22:51:17
746
原创 Arduino avr-g++ error CreateProcess No such file or directory编译错误解决
**摘要** 某次C盘深度清理后,Arduino IDE编译任何程序(包括空工程)均报 `avr-g++: error: CreateProcess: No such file or directory`,同时Dev-C++也无法编译。经排查,问题根源并非代码或IDE本体损坏,而是清理软件误删了两个关键目录: 1. **`%TEMP%\arduino_build_*`**(IDE编译临时目录,缺失导致无法创建临时文件) 2. **`%LOCALAPPDATA%\Arduino15`**(开发板核
2026-04-24 00:51:40
530
原创 YOLO训练中 `PytorchStreamReader` 错误的真相
前后折腾了数小时,尝试了无数种方法——重装PyTorch、降级版本、修改路径、换用绝对路径、在多线程/子进程/子线程间反复横跳——都无济于事。直到最后才发现,问题根本不在于我的模型文件,而在于Ultralytics内部一个“好心办坏事”的自动检测机制。本文将完整记录这一调试过程、最终发现的根本原因,以及为什么一个简单的amp=False就能解决所有问题。这次调试过程让我深刻体会到:一个看似复杂的错误,其根源往往藏在最不起眼的角落。
2026-04-08 13:54:25
564
原创 分享python项目与开源python项目中的效率法宝--requirements文件的使用
**requirements.txt 使用速览** Python 项目依赖混乱常导致“我电脑上能跑,你不行”,**虚拟环境 + requirements.txt** 可完美解决。 - **生成**:激活虚拟环境后 `pip freeze > requirements.txt`,锁定精确版本。 - **安装**:新环境执行 `pip install -r requirements.txt`,一键复现。 - **最佳实践**:区分生产/开发依赖(如 `requirements-dev.txt`)
2026-03-31 21:29:17
629
原创 解决串口通讯延时的莫名错误及原理 - UI阻塞罪魁祸首
**Brief** 在开发C# WinForms串口应用时,一个看似简单的“发送START后等待下位机REQ”逻辑却总是超时,即便串口调试窗口已显示数据到达。深入调试发现,罪魁祸首竟是UI线程中的`WaitOne`阻塞——它导致消息循环暂停,串口事件的底层窗口消息无法被及时处理,从而延迟了信号设置。将等待操作移至后台线程后问题瞬间解决。本文完整记录了从现象到原理的排查过程,剖析了Windows消息机制与串口事件的耦合关系,并给出了可靠的多线程编程建议,帮助开发者避开这一经典陷阱。
2026-03-25 12:26:04
565
原创 Arduino串口通信踩坑记:为何Leonardo只收不发?——详解USB串口与DTR握手的秘密
解决leonardo通过串口通讯时只能发送不能读取的问题。
2026-03-16 17:33:03
504
原创 powerconfig告别繁琐配置读写---为C#提供了一个快捷的读写配置文件的API
解决C#配置文件读写繁琐的问题,powerconfig,高效简便的读写xml配置文件。不用实例化,不用获取系统配置环境。不用声明变量,想到什么写什么。
2026-03-15 12:59:13
485
原创 # C# 中利用 PaddleOCRSharp 实现表格文字识别及可视化对比
通过和,我们能够在 C# 中轻松集成 PaddleOCR 的高效文字识别能力。本文不仅实现了基础的文本提取,还通过三图对比功能直观展示了检测和识别效果,尤其解决了中文显示问题。这种可视化方式对于调试 OCR 参数、验证识别准确率非常有帮助。未来可根据需求扩展:如识别表格结构、输出结构化数据等。希望本文能为你的 C# OCR 开发提供参考。注意事项务必使用 x64 平台编译。若中文显示仍有问题,检查系统是否安装 Microsoft YaHei 字体,或更换为其他中文字体(如“SimSun”)。
2026-02-25 15:03:44
1249
原创 PaddleOCR实战:从环境搭建到图文表格识别对比
你是否也曾在PaddleOCR的版本泥潭中挣扎?初始化参数报错、结果格式混乱、GPU警告不断……本文将带你避开这些“血的教训”,从零搭建一套稳定可用的OCR识别系统。基于Python 3.13、PaddleOCR 3.4和PaddlePaddle 3.2.1环境,我们不仅会输出最简识别结果,更将实现一个惊艳的三图并排可视化:**原图、仅框标记图、文字填入框图**,直观对比识别效果。文中完整代码可直接复制运行,特别强调版本一致性——这是无数开
2026-02-24 12:03:42
1083
原创 C#数据级联操作的法宝DataRelation
介绍在C#中使用DataRelation 的典型方法和典型代码实现,总结DataRelation 的核心优势
2025-11-01 22:18:38
1367
原创 c++递归与二叉树的实现及三种遍历的应用
介绍二叉树的基本概念、递归思想和代码实现。详细对比双向链表和二叉树的区别,强调二叉树作为层级式数据结构与双向链表线性结构的不同,以及栈、队列等其他数据结构的特点。强调递归思想的核心要点,如终止条件的确定、问题的分解和子问题的求解。总结前序、中序、后序遍历的区别和各自适用场景,明确是根据对根节点数据成员的访问顺序来命名的。总结二叉树在游戏开发中的应用场景和作用。
2025-02-05 18:25:16
1270
原创 双向链表在系统调度、游戏、文本编辑及组态方面的应用
在编程的奇妙世界里,数据结构就像是一把把神奇的钥匙(前面我们介绍过单向链表的基础了,这里我们更进一步),能帮我们打开解决各种问题的大门。今天,咱们就来聊聊其中一把特别的钥匙——双向链表。双向链表和普通链表相比,每个节点不仅有指向下一个节点的指针,还有指向前一个节点的指针,这就好比给它装上了“前后眼”,在很多场景下都能大显身手。接下来,我们通过双向链表在系统管理、游戏、文本编辑及组态软件中的应用,并给出示例代码。
2025-01-27 11:18:13
1188
原创 用Devc++与easyx一步一步做游戏[启动界面部分]-解决hover闪烁问题及优化
在之前的博文中,我们利用Devc++和easyx完成了游戏启动界面按钮的基本制作,实现了按钮的绘制以及鼠标悬停时的信息提示功能。然而,目前还存在一个问题,即鼠标移动时,提示文字会出现闪烁现象,有很多童鞋在阅读后都表示出了兴趣。这篇博文我们就来解决这个问题并对代码进行优化。
2025-01-26 13:08:05
1262
原创 c++的容器和适配器究竟有什么差别?
到这里,我们应该已经清楚容器的特征,再次强调,我所总结的容器应该默认为标准容器也就是STL库中包涵的容器。它具备以下特征:1、支持不同类型的数据存储,且支持迭代访问,包括对元素的高效访问。2、必须有同意的接口或者称为方法实现对元素的操作。3、可以动态自动的对容器的内存进行管理(而原生数组不可以)。4、标准容器必须是模板类,可以灵活的进行扩展。
2025-01-25 12:52:21
1267
原创 全面介绍c++中for的使用
在 C++ 编程里,for循环是极为常用的控制结构,大都是在我们初学编程语言的时候最早学习的基础内容,它能让代码依据特定条件重复执行。但初学的时候我们一般不会很全面的来学习它的用法,最常见的就是学习了for循环的传统用法。其实for还有其他的典型用法能够给我们的编程带来便利。这里我会全方位介绍 C++ 里for循环的各类使用方式,还会搭配实例代码便于大家更好的理解。
2025-01-24 10:59:08
2467
原创 项目配置文件之 JSON 文件的操作
JSON 在项目配置中扮演着重要的角色,它的简洁性、跨平台性和灵活性使得它成为了开发者们的首选。与 INI 文件和 XML 文件相比,JSON 具有更好的可读性、可扩展性和跨平台性。在选择 JSON 操作类时,需要根据项目的具体需求来进行选择。如果项目对性能要求较高,可以选择 System.Text.Json;如果需要处理复杂的 JSON 结构,可以选择 Newtonsoft.Json;如果项目在资源受限的环境中运行,可以选择 Json.NET Compact。
2024-12-09 21:47:03
2756
1
原创 从C#中的结构体和类的区别中看引用和值的问题
在 C#中,结构体和类有着多方面的区别且各有其适用场景。在作为参数传递时,类传递的是引用,方法内对参数的修改会影响原始对象;而结构体传递的是副本,方法内的修改不会作用于原始结构体。在内存分配方面,类对象实例存于堆内存,通过栈中的引用访问,结构体实例通常在栈中(特殊情况除外)。使用场景上,结构体适合表示简单、小型且无需继承和多态的数据集合,按值传递保证数据独立以及对性能要求较高的情况;类则用于需要引用语义、有着复杂业务逻辑和行为以及构建继承、多态的类型层次结构的场景。对于结构体实现引用,可以借助ref。
2024-12-07 11:11:44
1820
原创 项目配置文件之ini文件的操作
在选择 INI 操作类时,需要根据项目的具体需求、开发语言和环境等因素来综合考虑。如果是简单的 INI 文件读写操作,我个人是首推IniFile ,次推IniReader,它们使用简单,易于上手。对于需要与.NET Core 配置系统集成的项目,Microsoft.Extensions.Configuration.INI 是一个不错的选择。如果项目对配置管理功能要求较高,可以考虑 Nini,它提供了丰富的配置管理功能。
2024-12-07 09:51:34
2406
原创 链表的设计与指针的理解
内存访问的字节数和解析方式不同虽然指针存储的都是内存地址,但不同类型的指针在解引用时,编译器会根据指针的类型来确定要访问的内存字节数和解析方式。例如,在32位系统中,一个int类型通常占4个字节,一个char类型占1个字节。如果有一个整型指针int *p,当执行*p(解引用操作)时,编译器会从p所指向的地址开始读取4个字节,并按照整型的存储格式(如补码等)将这4个字节解析为一个整数。而如果是字符型指针char *q,当执行*q时,只会读取1个字节。指针运算的差异指针类型也会影响指针的算术运算。
2024-12-05 13:12:31
949
原创 树结构的介绍及实现的几种方法
上述的代码展示了二叉树的不同存储和遍历实现方式,在实际应用中可以根据具体的需求和场景选择合适的方法,并且可以进一步扩展功能,比如对更复杂的二叉树结构进行操作以及处理不同的遍历应用场景等。使用队列和vector来实现二叉树也是我们常用的方式。模拟完全二叉树的存储来进行简单说明。这里以一种特殊情况,比如用。
2024-12-05 13:11:24
1318
原创 一步一步从asp.net core mvc中访问asp.net core WebApi
"从asp.net core mvc中访问asp.net core WebApi"看到这个标题是不是觉得很绕口啊,但的确就是要讲一讲这样的访问。前面我们介绍了微信小程序访问asp.net core webapi(感兴趣的童鞋可以看看前面的博文有关WEBAPI的搭建),这里我们重点不关心如何搭建asp.net core webapi,因为前面有好几篇博文都已经讲到它了。这里我们重点要说的是如何使用.net core mvc来访问webapi。
2024-11-08 11:29:42
1885
原创 了解bootstrap改造asp.net core MVC的样式模板
在项目模板的基础上改造asp.net core MVC的页面显示效果。包括导航条的设计、登录对话框的设计、表格的美化、表单的美化。
2024-11-04 14:37:25
2122
原创 完整了解asp.net core MVC中的数据传递
在ASP.NET Core MVC应用开发中,数据传递是构建高效、可靠Web应用的核心环节之一。它涵盖了从控制器到视图、不同请求之间以及与外部数据源交互等多个方面。正确掌握各种数据传递方式对于开发出性能优良、用户体验良好的应用程序至关重要。本文将全面深入地探讨ASP.NET Core MVC中常见的数据传递方式,包括通过视图模型(ViewModel)、ViewData、ViewBag、临时数据(TempData)、缓存(Cache)、会话(Session),以及在控制器之间传递数据的方法。
2024-10-30 22:04:34
2283
1
原创 快速在win11上利用hyper-v安装虚拟系统:遭遇Start PXE over ipv4
以前习惯使用VMware,但在win11上折腾了很久都遇到各种麻烦,索性就上微软自家的Hyper-V,。作为微软自家的产品,Hyper-V 与 Windows 11 操作系统紧密结合,具有良好的兼容性和稳定性。在安装和使用过程中,与系统的其他功能和组件能够无缝衔接,减少了因兼容性问题导致的故障和错误。所以我们开工,快速部署它。
2024-10-30 10:17:53
5838
原创 完全透彻了解一个asp.net core MVC项目模板2
详细介绍了asp.net core web MVC 母板的所有细节,逐句逐词解释,适合初学asp.net的同学阅读。
2024-10-29 09:44:15
1314
原创 完全透彻了解一个asp.net core MVC项目模板1
asp.net提供了三种模式,本篇博文以asp.net core MVC为主题,逐句逐词的讲解每一个模板中的文件,旨在给初学asp.net web应用的童鞋答疑解惑,完全透彻的了解MVC模板的使用。
2024-10-28 23:07:41
2185
原创 一步一步从微信小程序获取asp.net Core API的数据
前面我们说过,如何使用微信小程序获取asp.net的数据,这里我们继续介绍如何获取asp.net core api的数据。两者之间还是有一些差别的。本篇博文旨在详细介绍如何一步一步从微信小程序获取asp.net Core API的数据。
2024-10-27 18:38:59
1798
原创 如何从iconfont中获取字体图标并应用到微信小程序中去?
下面我们以一个微信小程序的登录界面的制作为例来说明,如何从iconfont中获取字体图标是如何应用到微信小程序中去的。首先我们看效果。这里所有的图标,都是从iconfont中以字体的形式来加载的,也就是说,我们自始至终没有使用一张图片。如果这就是你要追求的效果,那么我们下面开始一步一步带你如何实现。
2024-10-25 10:40:43
2201
原创 为微信小程序换皮肤之配置vant
微信小程序自带的控件虽然具有很好的通用性和简洁性,但在面对一些复杂的交互场景和个性化的设计需求时,可能会显得力不从心。其功能的相对基础使得开发者在实现诸如多步骤复杂表单提交、实时数据交互与可视化展示、高度定制化的界面布局等方面,需要投入更多的时间和精力去进行额外的开发和调试工作。而且在视觉效果的丰富度上,相较于一些专业的 UI 组件库,可能无法满足用户对于现代应用日益增长的审美和体验要求。
2024-10-24 20:25:47
1884
原创 C#中的事件、代理与任务:深入剖析发布者 - 订阅者模式中的关键元素
事件和代理在发布者 - 订阅者模式的实现中各有特点。事件提供了一种更加封装、自动管理订阅者的方式,适用于大多数常见的发布 - 订阅场景;而代理则给予开发者更多的控制权,虽然需要手动处理一些逻辑,但在某些特定需求下(如需要高度定制订阅者管理逻辑)能够发挥优势。理解它们在订阅和发布操作上的异同,有助于根据实际项目需求选择合适的机制来构建灵活、可维护的软件系统。同时,任务的引入为事件和代理的异步操作提供了更多可能性,进一步丰富了程序设计的手段。
2024-10-02 22:49:31
1800
原创 WPF之UI进阶--控件样式与样式模板及词典
在Window.Resources中定义样式,指定TargetType为要应用样式的控件类型。控件模板允许你完全自定义控件的视觉结构。你可以通过 ControlTemplate 元素定义控件的外观和行为。步骤 1: 定义控件模板。
2024-09-29 16:34:46
2230
原创 WPF之UI进阶--完整了解wpf的控件和布局容器及应用
无论是winform还是wfp,布局容器都是属于控件的一种,只不过说布局容器是一种“装控件的控件”。这里我们来梳理一下他们的关系和使用方法,并且详细介绍他们的使用及注意事项。
2024-09-28 17:35:40
4805
1
原创 c#中字符串处理的技巧集合
字符串的处理可以算得是编程中最高频的动作之一,如是否有空的判断,对特定字符的过滤、list、dictionary、list 、List、DateTime与字符串数字之间的转换等。本文将这些常见的转换总结如下,并给出实例代码。
2024-09-27 16:41:41
1486
c#实现高亮显示xml文档
2011-11-28
XMLtoTree将xml加载到TreeView上(带添加和删除功能)
2012-05-17
VC2017串口通讯实例
2018-11-27
修复vc2017不能新建对话框类补丁包
2018-11-14
QT基于vc的uic.exe
2018-11-14
Processing中调用Sqlite实例源代码
2018-11-29
VC多线程通讯
2012-08-24
SQLite-and-SQL-Server-Compact-Toolbox-v4.8.776
2024-08-05
用来熟悉C#中GDI+几种坐标异同的案列
2023-03-08
在表格中实现复选框下拉框
2023-01-24
sqlite最新System.Data.Sqlite.dll
2018-12-25
C#中调用SQLITE实例源代码
2018-12-26
proteus arduino库文件
2019-02-23
arduino_LiquidCrystal_I2C库及proteus仿真LCD1602(pcf8574)
2019-03-31
9013,9012,8050,8550三极管的Multisim及SPICE模型
2019-01-20
arduino驱动程序安装及问题修复包
2019-04-01
processing编写的弹跳球游戏源码
2018-12-31
C#窗体皮肤控件使用源码SrisSkin
2018-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅