<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hack_tian的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hack_tian</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hack_tian]]></copyright><item><title><![CDATA[[2023.8.14] 1.使用C++11改进访问者模式]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/132280586</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/132280586</guid><author>hack_tian</author><pubDate>Mon, 14 Aug 2023 17:42:36 +0800</pubDate><description><![CDATA[访问者（Visitor）模式的定义：将作用于某种数据结构中的各元素的操作分离出来封装成独立的类，使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作。相比较原来的访问者模式，C++11改进后的访问者模式不会因为被访问者继承体系的变化而修改接口层，更加稳定。在访问者模式中，每增加一个新的元素类，都要在每一个具体访问者类中增加相应的具体操作，这违背了“开闭原则”。访问者模式把相关的行为封装在一起，构成一个访问者，使每一个访问者的功能都比较单一。访问者（Visitor）模式的主要缺点如下。]]></description><category></category></item><item><title><![CDATA[解决/lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/128186527</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/128186527</guid><author>hack_tian</author><pubDate>Mon, 05 Dec 2022 14:45:06 +0800</pubDate><description><![CDATA[libstdc++.so 版本问题]]></description><category></category></item><item><title><![CDATA[安装GCC教程]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/128144493</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/128144493</guid><author>hack_tian</author><pubDate>Fri, 02 Dec 2022 11:05:51 +0800</pubDate><description><![CDATA[linux gcc 安装]]></description><category></category></item><item><title><![CDATA[命名管道 C++]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/106257964</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/106257964</guid><author>hack_tian</author><pubDate>Thu, 21 May 2020 14:53:40 +0800</pubDate><description><![CDATA[C++实现
fifo_read.c
#include &lt;sys/types.h&gt;
#include &lt;sys/stat.h&gt;
#include &lt;errno.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;unistd.h&gt;
#define FIFO “/tmp/myfifo1”
]]></description><category></category></item><item><title><![CDATA[GCC编译器编译过程]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/106138828</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/106138828</guid><author>hack_tian</author><pubDate>Fri, 15 May 2020 11:48:37 +0800</pubDate><description><![CDATA[GCC 编译器在编译一个C语言程序时需要经过以下 4 步：
将C语言源程序预处理，生成.i文件。
预处理后的.i文件编译成为汇编语言，生成.s文件。
将汇编语言文件经过汇编，生成目标文件.o文件。
将各个模块的.o文件链接起来生成一个可执行程序文件。

常用编译命令选项

无选项

用法：#gcc test.c
作用：将test.c预处理、汇编、编译并链接形成可执行文件。
这里未指定输出文件，默认输出为a.out。

选项 -o

用法：#gcc test.c -o test
作用：将test.c预处理、汇]]></description><category></category></item><item><title><![CDATA[访问专有gitlab服提示错误：fatal: unable to access ': server certificate verification failed. CAfile: /etc/ssl/]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/105790536</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/105790536</guid><author>hack_tian</author><pubDate>Mon, 27 Apr 2020 14:46:38 +0800</pubDate><description><![CDATA[创建个人git，远程push错误：fatal: unable to access ': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none]]></description><category></category></item><item><title><![CDATA[C/C++串口通信原理及读写与操作]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/83792323</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/83792323</guid><author>hack_tian</author><pubDate>Tue, 06 Nov 2018 18:50:33 +0800</pubDate><description><![CDATA[在工业控制中，工控机（一般都基于Windows平台）经常需要与智能仪表通过串口进行通信。串口通信方便易行，应用广泛。

一般情况下，工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的，只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令，智能控制单元在接收到正确的命令后作出应答。



在Win32下，可以使...]]></description><category></category></item><item><title><![CDATA[SOCKET原理详解]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/83787294</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/83787294</guid><author>hack_tian</author><pubDate>Tue, 06 Nov 2018 14:54:14 +0800</pubDate><description><![CDATA[1、什么是socket

我们知道进程通信的方法有管道、命名管道、信号、消息队列、共享内存、信号量，这些方法都要求通信的两个进程位于同一个主机。但是如果通信双方不在同一个主机又该如何进行通信呢？在计算机网络中我们就学过了tcp/ip协议族，其实使用tcp/ip协议族就能达到我们想要的效果，如下图（图片来源于《tcp/ip协议详解卷一》第一章1.3）

　　　　　　　　　、

　　　　　　　　　　　...]]></description><category></category></item><item><title><![CDATA[Socket通信总结（附C++实现）]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/83546556</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/83546556</guid><author>hack_tian</author><pubDate>Tue, 30 Oct 2018 18:27:30 +0800</pubDate><description><![CDATA[文章目录[隐藏]

一、Socket是什么
	二、一些基本概念
	三、java socket建立连接的过程  
	四、Socket 通信示例
	五、建立通信链路
	六、服务端代码：
	七、客户端代码
	测试图例：
       因为项目需要，服务端需要一个SOCKET来接收客户端的请求，好吧，没办法度娘哇，结果很多都是linux的例子，功夫不负有心人啊，终于找到个demo，并且客户端代码详尽，记录...]]></description><category></category></item><item><title><![CDATA[使用c++builder调试代码时总是错过/忽略断点的解决方法]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/80307778</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/80307778</guid><author>hack_tian</author><pubDate>Mon, 14 May 2018 11:51:16 +0800</pubDate><description><![CDATA[最近刚刚安装了c++builder，将已有的代码进行调试时添加的断点总是不执行，在网上搜了一堆说要转到debug模式下，说根据下面步骤执行即可““C++Builder–&amp;gt;Project–&amp;gt;Option…–&amp;gt;Compiler–&amp;gt;Full Debug”，说的太简单了，根本没找到这样的选项，最后上谷歌搜了一下，呵呵呵呵，完美解决，只需要进行如下设置即可。

·         [...]]></description><category></category></item><item><title><![CDATA[在C++Builder中使用GDI+的流程]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/79896367</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/79896367</guid><author>hack_tian</author><pubDate>Wed, 11 Apr 2018 14:40:53 +0800</pubDate><description><![CDATA[在C++Builder中使用GDI+的流程：

1、  GDI+主要是通过gdiplus.dll进行调用，而BCB没有直接提供与gdiplus.dll对应的静态链接库，所以需要我们自己建立。如果在自己的计算机没有找到文件gdiplus.dll，可以到微软的官方网站进行下载。然后复制一份到自己的工程目录中，然后使用BCB提供的工具implib生成对应的静态链接库：implib gdiplus.lib...]]></description><category></category></item><item><title><![CDATA[3Dmax 波浪花瓶]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/79108844</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/79108844</guid><author>hack_tian</author><pubDate>Fri, 19 Jan 2018 17:07:32 +0800</pubDate><description><![CDATA[http://www.3dxy.com/3dmax/122.html]]></description><category></category></item><item><title><![CDATA[循环冗余校验码（CRC）]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/78753461</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/78753461</guid><author>hack_tian</author><pubDate>Fri, 08 Dec 2017 16:59:59 +0800</pubDate><description><![CDATA[循环冗余校验码（CRC） 
　　 
循环冗余校验码（CRC）的基本原理是：在K位信息码后再拼接R位的校验码，整个编码长度为N位，因此，这种编码又叫（N，K）码。对于一个给定的（N，K）码，可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码，而G(x)叫做这个CRC码的生成多项式。  
校验码的具体生成过程为：假设发送信息用信息多项式C(X)表示，将C(x)左移]]></description><category></category></item><item><title><![CDATA[Excel VBA 单元格格式]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/78707527</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/78707527</guid><author>hack_tian</author><pubDate>Mon, 04 Dec 2017 11:00:01 +0800</pubDate><description><![CDATA[单元格水平  竖向居中 
Sheet.Range(“A6”).HorizontalAlignment = = xlCenter   ‘= 3单元格水平居中 Sheet.Range(“A6”).VerticalAlignment = xlCenter   ‘=2 单元格竖向居中 此属性的值可设为以下常量之一： xlCenterxlDistributedxlJustifyxlLeft
设置单元格边框]]></description><category></category></item><item><title><![CDATA[Unity 2D 游戏开发 官方视频学习顺序]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/78652655</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/78652655</guid><author>hack_tian</author><pubDate>Tue, 28 Nov 2017 10:50:06 +0800</pubDate><description><![CDATA[按照我觉得的观看先后顺序吧：1）Unity 2D 游戏开发官方初学者教程1~15：这个系列第一集是整体介绍，适合先看下，后]]></description><category></category></item><item><title><![CDATA[文章标题]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/78537626</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/78537626</guid><author>hack_tian</author><pubDate>Wed, 15 Nov 2017 09:55:14 +0800</pubDate><description><![CDATA[C++ Builder中串口通讯的经验之谈 转自网址：http://blog.youkuaiyun.com/henhen2002/article/details/4485158　　经验。（串口部分），相信不少的人都知道在VB中有一个控件MSComm（图标是一个小黄电话），它可以帮你完成普通的串口传输功能（比如字符串什么的，但有的却实现起来比较烦琐），　　在BCB中要用VB的控件，我想很多人都知道怎么办，在菜单中]]></description><category></category></item><item><title><![CDATA[vector按存储的结构体的某一字段排序]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/78294579</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/78294579</guid><author>hack_tian</author><pubDate>Fri, 20 Oct 2017 13:49:38 +0800</pubDate><description><![CDATA[include include struct Person 
{ 
    string Name; 
    string Sex; 
    int Age; 
    int High; 
    Person() 
    :Age(0) 
    ,High(0) 
    { 
    } 
};//定义比较函数 
bool CmpAge(const Person& p1,const P]]></description><category></category></item><item><title><![CDATA[C++ builder 遍历所有组件的 caption 属性,轻松实现界面多语言支持]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/78249121</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/78249121</guid><author>hack_tian</author><pubDate>Mon, 16 Oct 2017 14:09:03 +0800</pubDate><description><![CDATA[//MD5.h ifndef BZF_MD5_Hdefine BZF_MD5_Hinclude include // a small class for calculating MD5 hashes of strings or byte arrays 
// it is not meant to be fast or secure 
// 
// usage: 1) feed it blocks o]]></description><category></category></item><item><title><![CDATA[c++ vector(向量)使用方法详解(顺序访问vector的多种方式）]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/78126729</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/78126729</guid><author>hack_tian</author><pubDate>Thu, 28 Sep 2017 18:07:11 +0800</pubDate><description><![CDATA[﻿﻿
vector 是向量类型，它可以容纳许多类型的数据，如若干个整数，所以称其为容器。vector 是C++ STL的一个重要成员，使用它时需要包含头文件：

复制代码 代码如下:

#include;



一、vector 的初始化：可以有五种方式,举例说明如下：
（1） vector a(10); //定义了10个整型元素的向量（尖括号中为元素类型名，它可以是任何合法的]]></description><category></category></item><item><title><![CDATA[跟踪访问冲突Access Violation的位置]]></title><link>https://blog.youkuaiyun.com/hack_tian/article/details/77987471</link><guid>https://blog.youkuaiyun.com/hack_tian/article/details/77987471</guid><author>hack_tian</author><pubDate>Fri, 15 Sep 2017 08:51:27 +0800</pubDate><description><![CDATA[﻿﻿
Tracking Down the Location of Some AVs
　　跟踪访问冲突AVs的位置
　　如果一个AV的起因源自于试图访问没有初始化的类的属性（或方法），在没有多少代码的情况下这是很容易识别的。但另一方面如果有一大堆代码时，或者AV出现在多次重复的循环体中的话，就相当有难度了。幸运的是，（C++Builder内或外的）AV的错误信息是通过窗口显示的。这有助于辨别由]]></description><category></category></item></channel></rss>