自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 资源 (7)
  • 收藏
  • 关注

原创 QT操作Word,插入表格

最近在做QT导出word报表,发现网上的资源不是很多,也浪费了很多时间,我自己做了一份demo,将会详细讲述如何做出需要样式的报表。在网上很容易查到java或者其他语言操作word的接口函数,但是QT能操作word的,不是很多,而且还不太好用。我把自己已经调试出来的代码,贡献出来,免得以后浪费时间。如果有错误的话,可以联系我。我的邮箱地址:[email protected]. 写了一部分接口函

2016-07-24 11:28:28 14849 29

原创 我在体面二厂的那些年

打工人打工魂,打工才是人上人

2022-05-19 20:50:44 2616

原创 我在体面的那几年

打工人打工魂,我在体面做个打工人。

2022-05-19 20:47:20 515

原创 UE4编译grpc,编译打包

unrealengine,《虚幻4引擎》是由Epic Games公司推出的一款游戏开发引擎,相比其他引擎,虚幻引擎不仅高效、全能,还能直接预览开发效果,赋予了开发商更强的能力。虚幻引擎4在大约2分半的Demo演示中,将其强大的功能发挥得淋漓尽致。与之相关的游戏有《连线》《绝地求生:刺激战场》等等。

2022-04-04 22:23:54 3764

原创 go redis代码练习

go redis作为客户端使用,使用其中的连接池等,可以参考如下例子package mainimport ( "bufio" "context" "fmt" playcardtensflow "go-zero-examples/goredis/api" "log" "net" "strconv" "strings" "sync/atomic" "time" "github.com/go-redis/redis/v8" "github.com/golang/protobuf/

2022-02-07 10:16:26 896

原创 智能指针的使用

文章目录独占型智能指针共享型智能指针线程安全shared_ptr引用计数AttributeMethod引用计数对象释放问题weak_ptrenable_shared_from_this独占型智能指针auto_ptr由于在拷贝和赋值时会转移指针权限,无法在STL容器中使用,在c++17中已经删除unique_ptr为独占式智能指针,无法进行拷贝和赋值,这里我们利用RAII机制来实现一个简单的unique_ptr这里使用泛型编程,unique_ptr内部保存T指针即可,在构造函数保存指针,析构函数

2021-12-16 16:27:20 1396

原创 Kratos Quick Start

一.查看Kratos官方文档以及源码​Kratos源码Kratos官方文档​查看如下路径,创建新的项目创建新项目Requiredgoprotocprotoc-gen-go二.Installinggo install 安装:go install github.com/go-kratos/kratos/cmd/kratos/v2@latestkratos upgrade源码编译安装:git clone https://github.com/go-kratos/kratos

2021-11-23 14:41:20 688

原创 Kratos日志

一.如何在kratos框架中使用参考官方文档中描述,为了方便业务自适配不同的 log 接入使用,Logger 只包含了最简单的 Log 接口。当业务需要在 Kratos 框架内部使用自定义的 log的时候,只需要简单实现方法即可。日志库较为公用建议放在kit基础库中方便其他微服务引用。在kratos日志中,很多时候是输出到控制台的,但是实践中更多的是为了打印到文本中。1.实现log接口并配置zap日志库编码package logimport ( "fmt" "time" "github.c

2021-11-23 09:52:53 1309

原创 grpc生成pb.go以及grpc.pb.go文件遇到的问题

1.生成pb.go(Linux 平台)protoc --go_out=. --go_opt=paths=source_relative \ --go-grpc_out=. --go-grpc_opt=paths=source_relative \ helloworld/helloworld.proto2.生成pb.go(Windows平台)protoc 默认不支持go语言文件的输出,需按插件的形式来实现通过protoc命令生成 xx.pb.go (数据结构的定义,及操作方法)

2021-11-12 17:02:08 3308

原创 golang实现无锁队列

golang实现无锁队列locklessqueue.go//locklessqueue.gopackage locklessimport ( "sync/atomic")type LockFreeQueue struct { buf []interface{} len int32 head int32 tail int32}func NewQueue(n int32) *LockFreeQueue { q := &LockFreeQueue{buf: make(

2021-10-15 11:14:12 1279

原创 golang http操作

1.golang http formdata表单形式操作package mainimport ( "bytes" "fmt" "io" "io/ioutil" "net/http" "net/url" "os" _ "reflect" "strings" _"time" _"unicode")func main() { testPredict() testGet("https://www.baidu.com") testGetUrl("https://w

2021-10-13 12:03:53 310

转载 现代 C++ 编译时 结构体字段反射

基于 C++ 14 原生语法,不到 100 行代码:让编译器帮你写 JSON 序列化/反序列化代码,告别体力劳动。本文不讨论完整的 C++ 反射技术,只讨论结构体 (struct) 的字段 (field) 反射,及其在序列化/反序列化代码生成上的应用。正文开始于 [sec|静态反射] 部分,其他部分都是铺垫。。可以略读。。。背景(TL;DR)很多人喜欢把程序员称为 码农,程序员也经常嘲讽自己每天都在 搬砖。这时候,大家会想:能否构造出一些 更好的工具,代替我们做那些无意义的 体力劳动 呢?在实际

2021-09-25 06:42:26 1505

原创 代码编码格式转为UTF8

1.在Linux系统中安装enca.网址:enca2.采用源码方式进行安装具体步骤如下:需要提前解压文件,解压之后,按照如下步骤进行。64位机器安装方法1.编译包:CC="gcc ${BUILD64}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" ./configure --prefix=/usr --libdir=/usr/lib64 --libexecdir=/usr/lib64 && make 2.运行make checkmake

2021-09-08 16:46:13 981

转载 C++基础

???? Github???? 本仓库是面向 C/C++ 技术方向校招求职者、初学者的基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经验、招聘、内推等信息。???? 仓库内容如有错误或改进欢迎 issue 或 pr,建议或讨论可在 #12 提出。由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 CC BY-NC-SA 4.0(署名 - 非商业性使用 - 相同方式共享) 协议,转载请注

2021-08-09 21:35:38 988

转载 c++11实现写优先的读写锁

先直接贴出代码:#ifndef __WRITE_FIRST_RW_LOCK_H#define __WRITE_FIRST_RW_LOCK_H #include <mutex>#include <condition_variable> class WfirstRWLock{public: WfirstRWLock() = default; ~WfirstRWLock() = default;public: void lock_read() { std::

2021-07-26 14:58:58 2270 2

原创 libcurl上传文件

1.libcurl功能简介https://curl.se/libcurl/具体使用方法可以看这里的简介:https://www.cnblogs.com/heluan/p/10177475.html2.上传文件到ftp上具体见代码:#include <string>namespace BaseFun{ struct UploadFileSession { static bool UploadFile(std::string& response, const std:

2021-07-21 16:02:52 2348

原创 利用 cmake 工具生成 Visual Studio 工程文件

最近在编译GRPC的时候,发现可以编译成Windows平台软件,用于远程调用。在Windows平台编译带有cmakelist的软件的时候,很多人喜欢使用cmake gui,可是很多时间都挺不好用的,还容易失败。本文介绍使用cmake以及git让开源软件,编译成window平台可以使用vs2015或者vs2019进行编译的工程。​1.软件准备在Windows上安装好如下两款软件,具体链接如下:cmake :https://cmake.org/git :https://cmake.org/2.生成软

2021-06-26 08:30:47 1302

原创 gRPC压测工具ghz

本文主要介绍了 gRPC 压测工具 ghz ,包括 ghz 的安装、使用及压测计划制定等。gRPC 系列相关代码见 Github安装可以直接在Release页面下载二进制文件,也可以 clone 仓库手动编译。下载解压后即可使用# 下载$ wget https://github.91chifun.workers.dev/https://github.com//bojand/ghz/releases/download/v0.94.0/ghz-linux-x86_64.tar.gzghz-lin

2021-06-20 16:40:17 1715

原创 Centos升级gcc至5.4.0

下载、解压源码包(可从官方镜像地址https://gcc.gnu.org/mirrors.html选择适合自己的下载地址与gcc版本)我选择的是距离杭州最近的节点,下载速度相对快点wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.4.0/gcc-5.4.0.tar.gztar xvf gcc-5.4.0.tar.gzcd gcc-5.4.0ps: gcc与g++的命令目录在/usr/local/bin下载依赖..

2021-06-20 16:37:33 269

原创 windows 10 编译 OpenSSL

1.下载OpenSSL源码地址:OpenSSL官网github地址2.下载需要用到的程序ActiveState Perlnasm安装完成后,添加到环境变量中3.用管理员打开“适用于 VS 2019 的 x64 本机工具命令提示”,到openssl源码目录切换到源码目录,然后配置如下图所示:将会提示错误:Can't locate Win32/Console.pm in @INC (you may need to install the Win32::Console module)

2021-05-28 15:57:48 323

原创 线程安全的单例模式写法

关于单例的理论部分已经不再赘述,网上多得是,下面以代码为例:class CNoncopyable { protected: CNoncopyable() {} ~CNoncopyable() {} private: // 将拷贝构造和赋值操作符声明为私有类型 CNoncopyable(const CNoncopyable&);

2021-01-21 20:12:39 197

转载 领域:知识与体系

在我工作的经历中就曾碰到过这么一个人,他一开始做了几年开发,从前端到后端,后来又转做测试,接触的“点”倒是不少,但却没能连接起来形成自己的体系,那他个人最大的价值就局限在最后所在的“点”上了。其实个人的成长有很多方面,但对于程序员的成长最重要的就是知识体系的构建,这其实就是一个 “点线面体” 的演进过程。下面我会结合自己的成长路线来梳理下这个体系的建立过程。点进入任何一个知识领域,都是从一个点开始的。如下图,是我从大学进入软件开发领域所接触的一系列的点,我将其从左到右按时间顺序排列。红色

2020-07-17 11:06:19 387

转载 UML科普文,一篇文章掌握14种UML图

前言上一篇文章写了一篇建造者模式,其中有几个UML类图,有的读者反馈看不懂了,我们今天就来解决一哈。什么是UML?UML是Unified Model Language的缩写,中文是统一建模语言,是由一整套图表组成的标准化建模语言。为什么要用UML?通过使用UML使得在软件开发之前, 对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。UML提供了极富表达能力的建模语言,可以让软件开发过程中的不同人员分别得到自己感兴趣的信息。Page-J

2020-07-13 22:39:07 614

转载 SQL 进阶技巧(下)

上文我们简述了 SQL 的一些进阶技巧,一些朋友觉得不过瘾,我们继续来下篇,再送你 10 个技巧一、 使用延迟查询优化 limit [offset], [rows]经常出现类似以下的 SQL 语句:SELECT*FROMfilmLIMIT100000,10offset 特别大!这是我司出现很多慢 SQL 的主要原因之一,尤其是在跑任务需要分页执行时,经常跑着跑着 offset 就跑到几十万了,导致任务越跑越慢。LIMIT 能很好地解决分页问题,但如果 offset 过...

2020-07-13 22:25:33 199

转载 SQL 进阶技巧(上)

编者荐语:看到工作中,很多 CRUD Girl&Boy 写 SQL 都很随意,项目组可能因为没有时间做约束限制,但不等于我们可以松懈对代码质量的要求,哪怕是美观的代码格式。如果你还不知道怎么写一手好SQL,这篇文章可以帮助你。以下文章来源于码海,作者码海由于工作需要,最近做了很多 BI 取数的工作,需要用到一些比较高级的 SQL 技巧,总结了一下工作中用到的一些比较骚的进阶技巧,特此记录一下,以方便自己查阅,主要目录如下: SQL 的书写规范 SQL 的一些...

2020-07-13 22:24:30 287

原创 索引的原理:我们为什么用B+树来做索引?

索引的作用,是否需要建立索引,以及建立什么样的索引,需要我们根据实际情况进行选择。我之前说过,索引其实就是一种数据结构,那么今天我们就来看下,索引的数据结构究竟是怎样的?对索引底层的数据结构有了更深入的了解后,就会更了解索引的使用原则。今天的文章内容主要包括下面几个部分:为什么索引要存放到硬盘上?如何评价索引的数据结构设计的好坏? 使用平衡二叉树作为索引的数据结构有哪些不足? B 树和 B+ 树的结构是怎样的?为什么我们常用 B+ 树作为索引的数据结构?如何评价索引的数据结构设计好坏数据库

2020-06-26 21:08:25 1099 1

原创 索引的使用原则:如何通过索引让SQL查询效率最大化?

什么情况下使用索引?当我们进行数据表查询的时候,都有哪些特征需要我们创建索引? 索引不是万能的,索引设计的不合理可能会阻碍数据库和业务处理的性能。那么什么情况下不需要创建索引? 创建了索引不一定代表一定用得上,甚至在有些情况下索引会失效。哪些情况下,索引会失效呢?又该如何避免这一情况?创建索引有哪些规律?创建索引有一定的规律。当这些规律出现的时候,我们就可以通过创建索引提升查询效率,下面我们来看看什么情况下可以创建索引:1. 字段的数值有唯一性的限制,比如用户名索引本身可以起到约束的作用,

2020-06-26 21:06:01 1555

原创 数据库调优

其实关于数据库调优的知识点非常分散。不同的 DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。为了能让你对数据库调优有一个整体的概览,我把这些知识点做了一个梳理,希望能对你有一些帮助。需要掌握以下几个方面的内容:数据库调优的目标是什么? 如果要进行调优,都有哪些维度可以选择? 如何思考和分析数据库调优这件事?数据库调优的目标简单来说,数据库调优的目的就是要让数据库运行得更快,也就是说响应的时间更快,吞吐量更大。不过随着用户量的不断增加,以及应用程序复杂度的提升,...

2020-06-22 23:06:18 508

原创 网络工具

在实际开发过程中,熟悉使用Linux或者Windows中相关网络工具,可以让我更快更准的找到故障,所以今天分享几个必会的网络利器1 ncnc-->“瑞士军刀”。不知大家在渗透过程中,拿了shell有没有使用nc搞点事儿。它用来快速构建网络链接。常用来调试客户端程序。nc参数小贱上案例执行任务 执行命令 扫描机器A端口号在30-40的服务 nc -z A 30-40 连接服务器A 端口号为5000 nc -C A 5000 传送文件 M.

2020-06-21 22:28:36 210

转载 实战!我用“大白鲨”让你看见 TCP

前言“哈?啥是大白鲨?”咳咳,主要是因为网络分析工具Wireshark的图标特别像大白鲨顶部的角。不信你看:Wireshark“为什么拖了怎么久才发文?”为了让大家更容易「看得见」 TCP,我搭建不少测试环境,并且数据包抓很多次,花费了不少时间,才抓到比较容易分析的数据包。接下来丢包、乱序、超时重传、快速重传、选择性确认、流量控制等等 TCP 的特性,都能「一览无云」。没错,我把 TCP 的"衣服扒光"了,就为了给大家看的清楚,嘻嘻。提纲正文...

2020-05-24 16:34:57 265

转载 在浏览器输入 URL 回车后,会发生什么?

这个问题已经是老生常谈了,更是经常被作为面试的压轴题出现,网上也有很多文章,但最近闲的无聊,然后就自己做了一篇笔记,感觉比之前理解更透彻了。注意:本文的步骤是建立在,请求的是一个简单的 HTTP 请求,没有 HTTPS、HTTP2、最简单的 DNS、没有代理、并且服务器没有任何问题的基础上,尽管这是不切实际的。大致流程 URL 解析 DNS 查询 TCP 连接 处理请求 接受响应 渲染页面 一、URL 解析地址解析:首先判断你.

2020-05-24 16:28:01 144

原创 STL常用算法(自查自用)

2020-05-12 17:12:23 119

原创 STL中容器的插入,删除以及查找性能对比

2020-05-12 16:48:08 622

原创 Nginx高级篇:从原理到实战,彻底搞懂Nginx

通过配置 Nginx 配置文件,实现正向代理、反向代理、负载均衡、Nginx 缓存、动静分离和高可用 Nginx 6种功能,并对 Nginx 的原理作进一步的解析。当需要使用 Nginx 配置文件时,参考本文实例即可,建议收藏。1. 正向代理  正向代理的代理对象是客户端。正向代理就是代理服务器替客户端去访问目标服务器。1.1 实战一实现效果:  在浏览器输入 www.go...

2020-03-03 13:19:19 1055 4

原创 SQL语句大全,所有的SQL都在这里

一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server---创建 备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'-...

2020-03-03 12:50:47 437

转载 boost::filesystem使用方法,根据路径创建文件夹

filesystem库提供了两个头文件,一个是<boost/filesystem.hpp>,这个头文件包括基本的库内容。它提供了对文件系统的重要操作。 同一时候它定义了一个类path。正如大家所想的。这个是一个可移植的路径表示方法,它是filesystem库的基础。 一个是<boost/filesystem/fstream.hpp>。是对std::fstream的一...

2019-12-19 11:40:23 5886

转载 基于Linux整形时间的常用计算思路

本文链接:https://blog.csdn.net/analogous_love/article/details/102574429上一次分享了《Linux时间时区详解与常用时间函数》,相信大家对Linux常见时间函数的使用也有了一定的了解,在工作中遇到类似获取时间等需求的时候也一定能很好的处理。本文基于Linux整形时间给出一些简化的的常用计算思路,试图从另外的角度去加强读者对时间处理的理...

2019-10-21 22:50:07 162

转载 最全的 DB2 错误代码大全

作为一个程序员,数据库是我们必须掌握的知识,经常操作数据库不可避免,but,在写 SQL 语句的时候,难免遇到各种问题。例如,当我们看着数据库报出的一大堆错误时,是否有种两眼发蒙的感觉呢?咳咳,莫要否认,你有、我有,全都有啊!不过,值得庆幸的是,已经有人帮咱们整理出一份关于 DB2 的错误代码大全啦,以后再遇到数据库报错,直接拎出看看,岂不爽哉?当然,在此对原作者送上万分的感谢。2 错误代码及说...

2019-07-30 14:29:12 5648

原创 字符串处理

#include <algorithm>#include <windows.h>#include <assert.h>#include <string>#include <sstream>#include <vector> using namespace std; //T类型转s...

2019-06-28 11:32:18 128

原创 C++ 根据文件路径获取文件名称,文件大小

#include "stdafx.h"#include <iostream>#include <string>using namespace std;std::string GetPathOrURLShortName(std::string strFullName);long long GetFileSize(string& strPath);st...

2019-06-28 10:44:50 1483

windows版本的生成pb的工具.zip

windows版本的生成pb的工具

2021-11-12

vs_proj.zip

使用该脚本可以根据开源软件生成vs2015,vs2019的工程

2021-06-26

modp_base64.rar

Basre64解码所依赖的三方文件,从chrome中抽取出来的。base64即是一种用6bit来表示一个字符的编码,常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据,包括MIME的email,email via MIME, 在XML中存储复杂数据,还有就是对URL及文件名进行编码。

2020-08-26

Qt开发文档用于编写Word文档

Qt本身支持众多操作系统。从通用操作系统Linux、Windows,到手机系统Android、iOS、WinPhone,嵌入式系统支持QNX、VxWorks,应用非常广泛。 基于Qt的软件非常多,其中最知名的要数Linux桌面系统KDE(涵盖无数以K打头的应用软件)。国内WPS for Linux版本、360 for Linux也是使用Qt库开发的界面。只要有C++基础,Qt是很容易学的,而且开发跨平台的程序也容易。目前主流使用的Qt库有Qt4和Qt5两个大版本,下面介绍其在Windows系统里的下载和安装。

2018-05-26

TCP/IP XMIND图

TCP/IP 简单总结,画的xmind图,还包括图片,可以帮助你理解TCP/IP.

2018-03-23

C++ 实现ping代码

C++代码实现ping代码,使用visual studio 2013编译通过,屏蔽了SDL检查。

2017-10-17

QT插入Word报表

Qt中插入Word报表,实现了表格,标题等的绘制工作。这是一个完整的demo,下载下来基本上就可以使用了。

2017-09-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除