<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sdkdslx的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sdkdslx</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sdkdslx]]></copyright><item><title><![CDATA[c#操作excel表格]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/147516043</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/147516043</guid><author>sdkdslx</author><pubDate>Fri, 25 Apr 2025 16:47:20 +0800</pubDate><description><![CDATA[c#操作excel表格有很多方法，本文介绍的是基于Interop.Excel方式。该方式并不是winform操作excel的最好方法，本文介绍该方法主要是为一些仍有需求的小伙伴。建议有兴趣的小伙伴可以看一下miniexcel，该方法更简洁高效。一、首先需要下载interop.excel库，在“管理NuGET程序包中下载。2、往excel表最后一行写入数据。3、把数据库数据写入excel。1、往某个单元格写入数据。4、读取某一个单元格数据。5、读取最后一行数据。]]></description><category></category></item><item><title><![CDATA[Winform实现条码打印]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/147444352</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/147444352</guid><author>sdkdslx</author><pubDate>Wed, 23 Apr 2025 11:09:35 +0800</pubDate><description><![CDATA[【代码】Winform实现条码打印。]]></description><category></category></item><item><title><![CDATA[Qt如何处理多线程界面卡顿]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139412011</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139412011</guid><author>sdkdslx</author><pubDate>Mon, 03 Jun 2024 13:16:12 +0800</pubDate><description><![CDATA[(3) Qt::QueuedConnection：（队列调用，异步调用）槽函数在控制回到接收者所在线程的事件循环时被调用，槽函数运行于信号接收者所在线程。发送信号之后，槽函数不会立刻被调用，等到接收者的当前函数执行完，进入事件循环之后，槽函数才会被调用。(4) Qt::BlockingQueuedConnection：（阻塞调用，同步调用）槽函数的调用时机与Qt::QueuedConnection一致，不过发送完信号后发送者所在线程会阻塞，直到槽函数运行完。这个在多线程环境下比较危险，可能会造成奔溃。]]></description><category></category></item><item><title><![CDATA[Bootloader简介]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139409051</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139409051</guid><author>sdkdslx</author><pubDate>Mon, 03 Jun 2024 11:15:58 +0800</pubDate><description><![CDATA[简单来说Bootloader就是硬件启动的引导小程序，是启动操作系统之前的动作，负责初始化硬件设备、建立内存空间的映射图，以及加载操作系统内核映象到系统中，并将系统的控制权传递给它。在一般典型的系统中， 整个系统的加载启动任务就完全由Bootloader来完成。

Bootloader的特点

Bootloader不属于操作系统内核，采用汇编语言编写，因此针对不同的CPU体系结构，这一部分代码不具备有可移植性；
在移植操作系统时，这部分代码必须加以改写；
Bootloader不但依赖于CPU]]></description><category></category></item><item><title><![CDATA[c#读取excel表格数据到datagridview控件]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139317599</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139317599</guid><author>sdkdslx</author><pubDate>Thu, 30 May 2024 10:41:31 +0800</pubDate><description><![CDATA[/HDR=YES 有两个值:YES/NO,表示第一行是否字段名,默认是YES,第一行是字段名。//根据路径打开一个Excel文件并将数据填充到DataSet中。]]></description><category></category></item><item><title><![CDATA[c#实现BPM系统网络传输接口，http协议，post]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139313899</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139313899</guid><author>sdkdslx</author><pubDate>Thu, 30 May 2024 10:02:02 +0800</pubDate><description><![CDATA[string.IsNullOrEmpty(PostData) && Method == HttpVerb.POST)//如果传送的数据不为空，并且方法是post。//编码方式按需求进行更改，UTF-8。string.IsNullOrEmpty(PostData) && Method == HttpVerb.PUT)//如果传送的数据不为空，并且方法是put。]]></description><category></category></item><item><title><![CDATA[QT如何操作sqlite数据库]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139303273</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139303273</guid><author>sdkdslx</author><pubDate>Wed, 29 May 2024 18:55:46 +0800</pubDate><description><![CDATA[括号中是表格的格式，上述指令表明，表格中有三列，第一列的名称（表头）是id，这一列储存的数据类型是int，第二列名称是name，数据类型是字符数组，最多有30个字符（和char(30)的区别在于，varchar的实际长度是变化的，而char的长度始终是给定的值），第三列的名称是age，数据类型是int。，其中student是表格名称，name是表头名称（即第二列），:name是待定的变量，where用于确定是哪一组数据，:id也是待定变量。如果已经存在，则后续的操作会在已有的数据库上进行。]]></description><category></category></item><item><title><![CDATA[QT的dll文件、lib文件和qmake区别]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139241693</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139241693</guid><author>sdkdslx</author><pubDate>Mon, 27 May 2024 16:32:29 +0800</pubDate><description><![CDATA[在Windows中，许多应用程序并不是一个完整的可执行文件，它们被分割成一些相对独立的动态链接库，即DLL文件，放置于系统中。一个应用程序可使用多个DLL文件，一个DLL文件也可能被不同的应用程序使用，这样的DLL文件被称为共享DLL文件。有许多应用程序不是一个完整的可执行文件(可执行文件就是点击或选中按回车即可运行)，而是被分割城了许多小程序，DLL就是起连接这些小程序的作用。lib是编译时用到的，dll是运行时用到的。是否是用Qt写的，都能使用qmake，因此qmake能用于很多软件的构建过程。]]></description><category></category></item><item><title><![CDATA[stm32的BOOT0和BOOT1管脚总结]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139241581</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139241581</guid><author>sdkdslx</author><pubDate>Mon, 27 May 2024 16:28:14 +0800</pubDate><description><![CDATA[3）系统存储器 = 芯片内部一块特定的区域，芯片出厂时在这个区域预置了一段Bootloader，就是通常说的ISP程序。BOOT1=0   BOOT0=1   从系统存储器启动，这种模式启动的程序功能由厂家设置。BOOT1=1   BOOT0=1   从内置SRAM启动，这种模式可以用于调试。BOOT1=x   BOOT0=0   从用户闪存启动，这是正常的工作模式。域的内容在芯片出厂后没有人能够修改或擦除，即它是一个ROM区。2）SRAM = 芯片内置的RAM区，就是内存啦。]]></description><category></category></item><item><title><![CDATA[c#从数据库读取数据到datagridview]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139196026</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139196026</guid><author>sdkdslx</author><pubDate>Sat, 25 May 2024 13:17:10 +0800</pubDate><description><![CDATA[/这里写你的查询语句。MessageBox.Show("数据表不存在，无法查询");]]></description><category></category></item><item><title><![CDATA[datagridview复选框选中响应]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139194114</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139194114</guid><author>sdkdslx</author><pubDate>Sat, 25 May 2024 10:56:54 +0800</pubDate><description><![CDATA[winform经常用datagridview来处理相关的数据显示，如果datagridview有复选框，我们应该如何处理相关选中响应。//如果选择所属的列是第1列那么 ColumnIndex == 0。]]></description><category></category></item><item><title><![CDATA[c#实现视频播放]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139174607</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139174607</guid><author>sdkdslx</author><pubDate>Fri, 24 May 2024 14:48:37 +0800</pubDate><description><![CDATA[在winform上实现视频播放常用的控件时media player，vs工具栏初始状态下没有，需要我们到com组件中添加。//返回目录中所有文件和子目录。//this.axWindowsMediaPlayer1.URL = "D/:路径/视频路径";//设置选中文件的路径为播放路径。// 将视频自动拉伸以适应窗体大小。]]></description><category></category></item><item><title><![CDATA[c#删除指定文件夹下所有文件]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139173974</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139173974</guid><author>sdkdslx</author><pubDate>Fri, 24 May 2024 14:35:32 +0800</pubDate><description><![CDATA[/返回目录中所有文件和子目录。//if (i is DirectoryInfo)            //判断是否文件夹。]]></description><category></category></item><item><title><![CDATA[c#把字节流转换为视频文件]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139113596</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139113596</guid><author>sdkdslx</author><pubDate>Wed, 22 May 2024 10:46:24 +0800</pubDate><description><![CDATA[/receiveData为接收到的字节数据。当我们接收到视频的字节数据流后，可通过下面方法把数据存为视频文件。]]></description><category></category></item><item><title><![CDATA[【c#跨线程操作界面方法】]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/139112835</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/139112835</guid><author>sdkdslx</author><pubDate>Wed, 22 May 2024 10:29:02 +0800</pubDate><description><![CDATA[我们知道，在winform中进行跨线程操作，如果处理不好则会出现界面卡顿、“线程间操作无效: 从不是创建控件的线程访问它“等问题，在此提供跨线程操作界面方法，可以很好解决相关问题。]]></description><category></category></item><item><title><![CDATA[Winform（c#）如何上传图片等资源文件]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/138854852</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/138854852</guid><author>sdkdslx</author><pubDate>Tue, 14 May 2024 14:49:17 +0800</pubDate><description><![CDATA[1、首先找到工程中properties，如下图双击其中的Resources.resx文件。2、进入下面界面，点击“添加资源”，选择要添加的图片资源。3、然后我们就可以使用了。]]></description><category></category></item><item><title><![CDATA[串口工作方式小结以及和SPI、I2C区别]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/138854199</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/138854199</guid><author>sdkdslx</author><pubDate>Tue, 14 May 2024 14:37:02 +0800</pubDate><description><![CDATA[中断方式的话我们可以分别设置接收中断和发送中断，当串口有数据需要接收时才进入中断程序进行读读操，这种方式占用CPU资源比较少，实际项目中比较常用，但需要注意中断程序不要太复杂使执行时间太长，如果执行时间超过一个字符的时间的话也会出现数据丢失的现象，这个波特率比较高的串口编程中比较容易出现，可以考虑用循环BUF方法，在中断程序中只负责实时地接收实数数和发送时的填数（写发送寄存器），其它操作放在中断外处理。spi通信是一种高速的，全双工，同步的通信总线，并且在芯片的管脚上只占用四根线。（2）使用线的根数不同。]]></description><category></category></item><item><title><![CDATA[利用qt实现解压缩zip文件]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/105751809</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/105751809</guid><author>sdkdslx</author><pubDate>Wed, 08 May 2024 19:28:06 +0800</pubDate><description><![CDATA[作者开发环境：Qt5.8 ，win10

总体思路：首先我们编译zip源码，生成zip的动态库；然后再编译quazip源码，得到quazip的动态库；最后在我们的程序中去调用。

详细步骤：

1、编译zlib

zlib源码下载：https://www.zlib.net/

zlib的编译，参考:https://blog.youkuaiyun.com/mml5211314/article/details/9...]]></description><category></category></item><item><title><![CDATA[C#读sqlite数据库]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/138582925</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/138582925</guid><author>sdkdslx</author><pubDate>Wed, 08 May 2024 19:05:41 +0800</pubDate><description><![CDATA[Console.WriteLine("获取数值" + reader["file"].ToString());MessageBox.Show("数据表不存在，无法查询");MessageBox.Show("数据库重新创建成功");//若没有库需要在Nugut下载。string firmName = "三星";]]></description><category></category></item><item><title><![CDATA[c#操作文件]]></title><link>https://blog.youkuaiyun.com/sdkdslx/article/details/138582744</link><guid>https://blog.youkuaiyun.com/sdkdslx/article/details/138582744</guid><author>sdkdslx</author><pubDate>Wed, 08 May 2024 19:01:46 +0800</pubDate><description><![CDATA[1、、创建文件夹if (!2、删除某个文件。]]></description><category></category></item></channel></rss>