<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[taynpg的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Taynpg</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Taynpg]]></copyright><item><title><![CDATA[VS无法命中断点，源代码源代码与原始版本不同解决。]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/144014832</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/144014832</guid><author>Taynpg</author><pubDate>Sun, 24 Nov 2024 22:05:16 +0800</pubDate><description><![CDATA[然后遇到不管是删除构建结果文件重新编译，还是直接重新编译都不行，最后发现是。我只说一下我的情况，供大家参考。使用场景是，源码格式为。，编译结果为本地编码，所以编译使用。]]></description><category></category></item><item><title><![CDATA[Rust使用之【宏】]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/141993682</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/141993682</guid><author>Taynpg</author><pubDate>Sat, 07 Sep 2024 12:38:26 +0800</pubDate><description><![CDATA[如果有一个自定义的结构体，正常println!是并不支持打印任意内容的，这时可以自己实现一个例如to_string的方法将自己的结构体转成Stringage: u32,age: 30,println!quote!format!("{}: {:?});#()*result有点类似cpp的宏定义，cpp的宏定义就是单纯的字符串替换，Rust虽说本质上也是单纯的字符串替换，但是Rust。]]></description><category></category></item><item><title><![CDATA[2024年记一次Mingw64-13.2.0编译Qt6.6.3，包含文档编译。]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/138670290</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/138670290</guid><author>Taynpg</author><pubDate>Fri, 10 May 2024 17:36:05 +0800</pubDate><description><![CDATA[使用mingw64编译一个qt6。]]></description><category></category></item><item><title><![CDATA[Qt下CMake指定GBK输出语句（复制用，省的每次手敲）]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/135502160</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/135502160</guid><author>Taynpg</author><pubDate>Wed, 10 Jan 2024 14:06:08 +0800</pubDate><description><![CDATA[【代码】Qt下CMake指定GBK输出语句（复制用，省的每次手敲）]]></description><category></category></item><item><title><![CDATA[等待进程框示例]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/131890886</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/131890886</guid><author>Taynpg</author><pubDate>Mon, 24 Jul 2023 10:30:01 +0800</pubDate><description><![CDATA[【代码】等待进程框示例。]]></description><category></category></item><item><title><![CDATA[termux下pip包出现Package ‘xxx-dev‘ has no installation candidate处理]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/102814236</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/102814236</guid><author>Taynpg</author><pubDate>Tue, 08 Jun 2021 13:11:39 +0800</pubDate><description><![CDATA[---------------------------
当时在平板termux上安装scikit-learn时，总会安装失败，因此在网上看一些教程，说是要安装一些xxx-dev的依赖，但是在pip这些依赖的时候总会Package ‘xxx-dev’ has no installation candidate，后来找了半天终于在一个国外网站找到了原因：
最新版的pip中，已将-dev依赖合并了原包，...]]></description><category></category></item><item><title><![CDATA[51单片机89C516笔记（二）]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/115472743</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/115472743</guid><author>Taynpg</author><pubDate>Thu, 08 Apr 2021 11:55:44 +0800</pubDate><description><![CDATA[一.熟悉各个模块
先熟悉各个模块的原理和使用。
已知默认状态下，所有的IO口默认都是高电平。
1.LED模块
这个模块在 笔记一 里面已经有实验过了，这里重新放一张原理图，只需要控制：
// P20 ~ P27 一共 8 个 IO 口即可。


2.独立按键模块
由原理图可知，四个独立按键由P31到P33控制，当按键按下的时候，对应的IO的高电平被置为低电平，单片机就可以检测到该IO口的电平高低，从而判断按键是否被按下。


...]]></description><category></category></item><item><title><![CDATA[51单片机89C516笔记（一）]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/115433256</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/115433256</guid><author>Taynpg</author><pubDate>Tue, 06 Apr 2021 21:21:50 +0800</pubDate><description><![CDATA[1.前言
最近突然想玩一玩51单片机，之前没有玩过，也是小白一个，记录下折腾过程。淘宝2021-04-04日下了一单，型号是89C516，大概看了一下，该型号的配置：
2.开始
2.1 工具
工具淘宝打包给的都是全套的，先备份一下主要的工具（KEIL、板子驱动、烧录软件、仿真器驱动、辅助工具等）：

2.2 准备
先看一段新手开发板介绍视频，主要的内容是各个模块的介绍，简单记录一下：
1.数码管

是共阴极数码管，
2.3 Demo
先跑一个点亮单个LED灯的小例子，打开Keil新建工程，89C516在Ke]]></description><category></category></item><item><title><![CDATA[二叉树非递归先序、中序、后序遍历的完整C实现]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/114364871</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/114364871</guid><author>Taynpg</author><pubDate>Thu, 04 Mar 2021 15:09:36 +0800</pubDate><description><![CDATA[介绍
本文使用C语言完整实现二叉树的非递归先序、中序、后序遍历。
以下是原递归算法（二叉树的先序、中序、后序遍历的递归实现算法）：
// 1.先序递归实现算法
void PreOrder(BiTree T) {
	if (T != NULL) {
		visit(T);
		PreOrder(T-&gt;lchild);
		PreOrder(T-&gt;rchild);
	}
}

// 2.中序递归实现算法
void InOrder(BiTree T) {
	if (T != NULL) {
		InO]]></description><category></category></item><item><title><![CDATA[rust小练习-01-添加鼠标右键此处打开CMD]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/114310235</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/114310235</guid><author>Taynpg</author><pubDate>Wed, 03 Mar 2021 13:58:05 +0800</pubDate><description><![CDATA[安装包
在 Caogo.toml 中，添加 winreg 包（操作注册表），用rust实现纯属小小练习。

cmd 进入项目中，cargo build 安装，如果想查看 winreg 的 API 和使用介绍，cmd 进入项目中 cargo doc 即可生成本地的所有你用到的库的文档。
使用
extern crate winreg;

use winreg::enums::HKEY_CLASSES_ROOT;
use winreg::{RegKey, RegValue};
use winreg::enums:]]></description><category></category></item><item><title><![CDATA[rust-lang安装和环境配置]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/114286882</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/114286882</guid><author>Taynpg</author><pubDate>Tue, 02 Mar 2021 16:13:07 +0800</pubDate><description><![CDATA[以下配置部分的内容各平台都是相同的，安装的话这里以Windows为例。
安装记录
安装前配置
在环境变量中可以设定：
RUSTUP_HOME: 存储工具链和配置文件 路径
CARGO_HOME:  存储cargo的缓存 路径

这样可以指定rust-lang的安装位置，如果不设定，会自动安装在用户目录下。
开始安装
在官网中下载 rustup-init.exe 安装 程序，在控制台中运行。在windows上安装rust需要有 Visual Studio C++ Build tools，如果没有，运行安装程式]]></description><category></category></item><item><title><![CDATA[小白用最原始的语言来完全理解KMP算法]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/109764751</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/109764751</guid><author>Taynpg</author><pubDate>Wed, 18 Nov 2020 14:58:04 +0800</pubDate><description><![CDATA[前言
整了两天才算是领悟了KMP，够费劲的，回头再看好像还真的是一个挺简单的算法（以学习者角度看，非发明者）。网上有人说，KMP是一个很简单的算法，之所以难，是因为没有人能讲清楚。现在看来，好像是有点…。
弄懂KMP算法后，感觉其实主要是两个大问题，一个是算法本身，一个是代码理解。
以下纯属一些个人的见解，用于帮助翻了多篇文章但还是不甚理解的小伙伴，作一个思路上的参考，其实就是有一些疑惑没有解决，这些疑惑或许博主觉得太简单或者理所应当就没有提，但恰恰是给小白拦路的地方，所以文章主体是以 提问-解答 的方式来]]></description><category></category></item><item><title><![CDATA[C++调用动态库DLL注意事项]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/109549360</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/109549360</guid><author>Taynpg</author><pubDate>Sat, 07 Nov 2020 17:14:21 +0800</pubDate><description><![CDATA[导出DLL注意事项
如果使用者是利用 头文件和LIB静态链接库 使用DLL的话，那么就正常写函数声明即可：
extern "C" __declspec(dllexport) int __stdcall add(int a, int b);

如果调用者知道动态库中的函数而直接 显式调用 的话（Depends工具可以查看DLL中函数），那么导出的DLL库，需要在源文件目录下额外添加def模板定义文件，内容格式如下：
LIBRARY

EXPORTS
	add;

在EXPORTS下，写明你的函数名字，因为编译]]></description><category></category></item><item><title><![CDATA[C++析构函数和delete关系]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/109245219</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/109245219</guid><author>Taynpg</author><pubDate>Fri, 23 Oct 2020 16:41:16 +0800</pubDate><description><![CDATA[结论
以下：
在栈上的对象，作用域结束后自动调用析构函数（自动的），而delete用于在堆上创建的空间，执行delete后，程序会执行该对象的析构函数，而不执行delete程序不会自动执行析构函数（也就是说，不使用delete它就不析构）。
示例
class Factory
{
public:
    Factory(int n)
    {
        num = n;
        std::cout &lt;&lt; "工厂 " &lt;&lt; num &lt;&lt; " 号启动了！" &l]]></description><category></category></item><item><title><![CDATA[C/C++中的各文件的作用关系及编译过程]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/109118100</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/109118100</guid><author>Taynpg</author><pubDate>Fri, 16 Oct 2020 17:31:54 +0800</pubDate><description><![CDATA[前言
学了c++，写的部分小工具都是用的VS、CLion这样的专门IDE，这些IDE都帮我处理好了多个c++文件的链接生成等工作，不用了解它的运作原理，导致有时候学习第三方库做的程序时不知道我的代码是怎么和它们联系起来的、离开了IDE两眼一抹黑，直接使用gcc/g++命令行的方式几乎没怎么用过。
直到今天我了解到了Cmake和makefiles，今天特此来梳理一下整个C/C++项目的构建过程、文件作用、名词解释等概念。
文件介绍
各后缀文件简介：
1.&lt;obj&gt; 目标文件，一般是程序编译后的二进]]></description><category></category></item><item><title><![CDATA[vscode一键配置C/C++多个C及CPP文件编译与tasks.json和launch.json原理]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/109072226</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/109072226</guid><author>Taynpg</author><pubDate>Wed, 14 Oct 2020 16:05:56 +0800</pubDate><description><![CDATA[vscode配置环境及配置原理
搜了很多的教程，发现要么教程太老，给的配置信息里面有些参数都不能使用了，要么就是直接扔下自己的配置信息就没了，不知道咋来的，也不能拿过来直接用，让我这种小白无从下手，于是就摸索整理一下，帮助一下像我这样小白刚入手的小伙伴们。
原理
我觉得最重要的就是我们要明白各个配置文件是干嘛的，它是怎么被vscode使用的，明白这一点，那么自己就可以比较清晰参数该怎么改，应该改哪些参数，而不是拿着别人的配置文件，无从下手。配置文件基本的原理（只是原理，不是咋配置的）：
vscode使用的最]]></description><category></category></item><item><title><![CDATA[C++中缀表达式转后缀表达式代码及思路]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/109001951</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/109001951</guid><author>Taynpg</author><pubDate>Sat, 10 Oct 2020 18:50:27 +0800</pubDate><description><![CDATA[转换过程
下面的 输出 一词表示将该值存起来（保存到要求的结果中），压栈 就是入栈的意思。
①遇到操作数直接输出
②遇到操作符：分种情况
1.栈为空时： 无论操作符是什么，直接压栈
2.新的操作符优先级比栈顶的高： 直接压栈（优先级： 括号 &gt; * / &gt; + -）
3.新操作符是左括号： 直接压栈，且左括号只有在有右括号操作符时才出栈。
4.新操作符是右括号： 右括号不入栈，从栈顶开始出栈并输出，直到碰到左括号才停下来(包括左括号也出栈，但是不输出)，且一个右括号只能对应一个左括号，不能多出。]]></description><category></category></item><item><title><![CDATA[408海明码的解算思路]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/108193653</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/108193653</guid><author>Taynpg</author><pubDate>Mon, 24 Aug 2020 12:39:03 +0800</pubDate><description><![CDATA[一、什么是海明码
百度一下
二、编码
1.先来算需要几个校验位
假设校验位有k位，因为每一位都是二进制数据表示，那么校验码最多有可以表示2^k种情况（组合），由于以上所有情况里面有一种组合用来标志该数据正确时的情况， 因此有如下公式：
(2^k) - 1 ≥　n+k

2.计算过程
假如待编码的数据是：1010011
1. 算k值（结果是4）
2. 得到数据一共有11位（检验4 + 原数据7）
3. 画出标识表格。
这其中将第 i 个校验位按照2^(i - 1)的位置插入到原数据中（本方法是从右往左，比如第]]></description><category></category></item><item><title><![CDATA[ObjectArx(2010~2020)工程创建、类添加及错误处理]]></title><link>https://blog.youkuaiyun.com/Taynpg/article/details/107199192</link><guid>https://blog.youkuaiyun.com/Taynpg/article/details/107199192</guid><author>Taynpg</author><pubDate>Wed, 08 Jul 2020 11:02:07 +0800</pubDate><description><![CDATA[ObjectArx(2010~2020)工程创建、类添加及错误处理
需要的工具

AutoCAD
ObjectArx开发工具包
Visual Studio

ARX和VS的版本对应




AutoCAD
ARX版本
Visual Studio
版本




AutoCAD(R12)
ARX1
VC
VC2


AutoCAD(R14)
ARX202
VC
VC4.2


AutoCAD2000/2
ObjectArx2002
VC
VC6.0


AutoCAD2004
ObjectArx2004
VS2]]></description><category></category></item></channel></rss>