- 博客(110)
- 资源 (13)
- 收藏
- 关注

原创 python入门(三) 实现QQ自动发送消息
前言前面二章简单过了一下python的基本知识,最近刚好需要实现QQ自动发送消息的脚本,于是便拿python来练手。业务逻辑1、打开需要发送消息的窗口2、锁定该窗口3、将需要发送的内容放到QQ窗口4、模拟按键发送enter键发送消息(QQ发送消息有二种方式Enter/Ctrl+Enter,本次案例使用Enter)环境win10 + python3.7.1从业务上...
2018-10-28 18:52:44
73487
74

原创 随机数生成器,基于软件的伪随机数算法
在工程中有时候需要用到随机数函数来模拟一些情况,例如加密系统的密钥来源可以用随机数函数获取。一般来说随机数函数需要有以下性质:1:随机性,不存在统计学偏差,是完全散乱的数列。2:不可预测性:不能从过去的的数列推算出下一个出现的数3:不可重现性:除非数列保存下来,否则不能重新相同的数列(比较难)。根据以上三个性质,可以将随机数函数分为“弱伪随机数”,“强伪随机数”,“真随机数”。其中“真随机数”靠软...
2018-06-24 15:57:50
10344
1
原创 go开发质量工具 go test、gofmt、golint快速上手
前言:go开发集成工具满足开发过程中单元测试、性能测试、代码格式化、代码规范检测需求。单元测试:测试文件以性能测试:代码格式化:代码规范检测:
2021-05-15 07:39:33
836
8
原创 eggjs框架学习心得
前言: eggjs作为阿里开源的企业级 Node.js 框架,其官网教程https://eggjs.org/zh-cn/tutorials/index.html介绍的很详细,可以帮助初学开发者快速搭建运行eggjs框架。本文主要介绍一些本人对eggjs的学习心得,也建议初学者从官网教程进行学习,然后找开源项目进行仿照实战。eggjs框架目录结构 官网的目录结构介绍缺了不少,以下是我整理的eggjs框架目录结构。 ...
2021-05-06 22:34:41
703
8
原创 【C/C++】软件异常状态快速定位技巧
前言在软件运行过程中遇到的崩溃问题,可能无法找到复现步骤,难以复现。此时使用日志或者Debug方法就很难定位出现异常的代码位置。本文主要讲述如何通过崩溃生成的信息去定位异常代码位置。Window PC软件崩溃位置定位以Visual Studio 2017为例,在工程配置属性【生成映射文件】上设置【是】工程编译完,会在生成目录生成对应的map文件,map文件需要与软件共同打包发布。当软件运行过程中出现崩溃...
2021-04-11 21:19:33
2463
4
原创 FATFS文件系统架构及源码介绍
前言:FATFS作为一个优秀的文件系统开源项目,具有高性能、易移植的特点。本文主要分三个部分:FATFS的架构介绍、源码剖析。架构:FATFS处于应用层和磁盘IO层之间,对应用层提供的接口封装风格与标准C的文件操作接口风格一致,应用程序只需进行少量的修改即可使用。对与磁盘IO层,FATFS完全与其分开,开发人员需要自己实现FATFS中diskio.h中声明的磁盘控制函数,其架构如下:源码剖析:FATFS源代码精简,只包括diskio.h、diskio.c、ff.h、ff.c、f.
2021-03-08 23:48:49
1191
1
原创 交叉编译报错【uClibc was built without large file support】和【undefined reference to `getcontext`】解决方法
前言:在使用mpis平台的交叉编译工具编译openssl+curl库时,遇到uClibc was built without large file support和undefined reference to `getcontext`编译报错。问题分析uClibc was built without large file support:该问题是由于开发人员在配置和构建uClibc编译器时没有开启Large File Support大文件支持导致的。可通过增加编译选项-D_FILE_OFFS
2021-03-08 13:59:12
1050
原创 设置GRPC日志输出,用于捕捉内部段错误前抛出的ERROR信息
前言: 如果你软件中使用了grpc,记住一定要设置grpc的日志输出。grpc其内部实现中一旦抛出error信息,便会导致软件段错误。而你此前调用grpc的函数可能一切都是正常的。设置GRPC日志输出 博主平常使用的是Glog作为日志库,本次例子是将grpc的日志输出转到glog中。下面是代码片段,函数头文件应该是在grpc\impl\codegen\log.h里。/* grpc_log转glog的回调函数 */static void grpc_log_to_glog_fun(g...
2020-10-09 23:33:49
2221
1
原创 【已解决】鲲鹏CPU移植GRPC库,builder.BuildAndStart()接口阻塞问题
GRPC版本:v1.30.0 c++uname -a: Linux localhost.localdomain 4.14.0-115.el7a.0.1.aarch64 #1 SMP Sun Nov 25 20:54:21 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux操作系统:CentOS Linux release 7.6.1810 (AltArch)问题描述:int RunServer(std::string stdAddr){ .
2020-07-14 10:49:04
1185
9
原创 Window平台Grpc框架搭建
Grpc源码下载1、下载git软件2、运行命令【git clonehttps://github.com/grpc/grpc.git】下载源码3、运行命令【cdgrpc】【git submodule update --init】下载依赖性4、下载速度较慢的人可以直接从云盘下载成品:链接:https://pan.baidu.com/s/1K1ZpjLk_zLa3RfJ_KPYKjw提取码:sirq复制这段内容后打开百度网盘手机App,操作更方便哦Grpc工程搭建1、下载...
2020-06-14 15:43:38
598
原创 【干货分享】使用Inno Setup设计扁平化风格的安装包
前言:本文将提供一个通用的扁平化风格安装包模板。模板参考有道云设计,兼容win10、win7等操作系统。模板及相关软件学习资料下载路径:链接:https://pan.baidu.com/s/1ue7Exd5ZrQycr2jClJV2EQ提取码:qz85复制这段内容后打开百度网盘手机App,操作更方便哦模板风格及功能展示:1、支持服务条款阅读;2、支持用户自定义安装路径;3、支持用户选择是否安装完后打开软件;4、支持用户选择是否安装完后打开官网;安装向导图:..
2020-05-31 13:57:37
2036
原创 聊一聊HTTPS安全性原理以及如何在GIN框架中运用
前言:编写本文的目的是让新手们快速了解HTTP协议相关知识,文中列举的信息如果有误,希望你能指出。期待大家共同进步。HTTTPS安全性原理HTTP是建立在TCP协议之上的请求响应协议,由于安全性需求衍生出HTTPS网络协议,因此HTTPS处于HTTP和TCP协议中间,建立起安全可靠的HTTP通道。HTTPS的安全性是依赖于SSL协议,在客户端和服务器通讯前,二者根据SSL协议,完成身份认证、加密算法,加密密钥的确定。其保证了前者保证了通讯双方不会遭受中间人攻击,后者保证通讯的内容在传输时是出
2020-05-29 23:28:53
3195
原创 Golang gin框架 快速搭建
前言:安装gin总是一大堆依赖报错... ...Window下载地址:链接:https://pan.baidu.com/s/1yktRIfHSpzpH0kRcU5_H5w提取码:i62p解压后直接放在 $GOPATH对应目录即可。测试程序:package mainimport "github.com/gin-gonic/gin"func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) {...
2020-05-18 22:48:05
428
原创 LeetCode刷题笔记(一)
1、Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the sam...
2020-05-17 21:41:32
266
原创 GO语言学习笔记(五)并发、通道、反射
并发 golang支持逻辑上处理多个任务即并发,golang中的coroute协程的支持是优秀的,其本质上利用了多线程和协程配合提高处理器时间片的利用率。使用go可以创建一个并发单元,使用WaitGroup可以让主线程等待并发单元执行完再推出。关于golang中并发的详细设计可以参考:https://blog.youkuaiyun.com/wjb123sw99/article/details/10541...
2020-04-25 14:37:34
426
原创 GO语言学习笔记(四)方法和接口
方法 golang中实例对象的方法与C++中类的公有方法类似,是一种面向对象编程的基本概念,可以说方法是与对象实例绑定的特殊函数。方法与普通函数的区别在于定义时方法有前置实例接收参数(receiver),receiver声明了方法所属的实例对象,package mainimport "fmt"type N inttype Y intfunc (arg N) test(i ...
2020-04-19 14:25:23
357
原创 Conway’s Game of Life介绍及实现
前言: 博主在看新闻时,浏览到John Horton Conway因新型冠状病毒感染而去世。这场疫情带走了许多领域杰出的大师们,希望全人类早日战胜疫情。 John Horton Conway的生命游戏为不少数学家和码农所熟知,本篇主要介绍了Conway’s Game of Life以及基于C++的实现。生命游戏规则:1、 生命游戏规则有些类似与围棋,游戏背景为假设有无尽...
2020-04-16 23:29:23
2150
原创 浅谈操作系统中进程、线程、协程的联系
前言:最近在学习golang语法特性,golang和其它语言最大区别莫过于goroutine,这块知识点博主已经太久没有温固,对协程认知已经处于盲点。因此本文主要带你认知操作系统中进程、线程、协程。进程在Window系统中,打开任务管理器,你可以看到当前操作系统中正在运行的进程详细信息。在Linux系统中,运行top命令,你可以看到当前操作系统中正在运行的进程详细信息。...
2020-04-09 18:42:40
289
原创 使用CUnit对库做单元测试
前言:博主目前手头上管理着几个设备的跨平台库,对外接口大概有七八十个,平常写测试用例的test文件就有几十个。趁着最近版本发布后的空闲时间,对接口库进行单元测试。与Junit CppUnit类似,CUnit为C程序员提供了基本的测试功能,且提供了几种不同的界面来运行测试和报告结果。个人而言,更喜欢xml格式的报告。入门:Cunit的下载地址是:https://sourceforge.n...
2020-04-09 15:30:53
650
原创 GO语言学习笔记(二)指针、切片、字典、结构体
指针golang中指针变量的值为被指向变量的地址,指针变量可以通过地址去访问并修改被指向对象的值。需要注意的是golang禁止对指针变量的值做修改。此外如果局部变量的地址被指针变量引用,具备变量的生命周期大于等于该指针的生命周期。package mainimport "fmt"func point() *int { var x int = 2 fmt.Println(&...
2020-04-06 16:44:13
1005
原创 GO语言学习笔记(一)变量、常量、枚举
前言:博主在开发C/C++程序过程中,遇到的许多语法繁琐困扰,在学习GOLANG时。都予以解答。GOLANG的语法特性让我惊喜。本文会忽略一些语法通识,如果你有C或者C++语言基础,你可以阅读博主的学习笔记让你快速对golang的语法有认知。如果你是新手,建议阅读《go圣经》来完成你的入门。代码格式化golang提供代码风格格式化工具gofmt,运行命令【gofmt -w 目标文件...
2020-04-04 22:32:40
627
原创 glog配置与持久化记录
最近采用了glog作为一个项目的日志库,作为轻量级日志库,其功能完备,下面列举了一些大家常用的日志配置。场景一:将日志输出到指定文件夹和终端中:#include <iostream>#include "glog/logging.h"using namespace std;int main(int argc, char** argv){ google::InitG...
2020-03-28 22:17:51
6362
2
原创 关于SM4填充算法PKCS5和PKCS7讲解
前言: 今天刚好在系统上增加SM4算法的支持,SM4算法的实现网上你可以搜到很多版本,但是如果你要运用到实际中时,你一定要来接SM4算法填充规则。正文: 首先,SM4接口大多是以最小单位16Byte进行加解密。因此SM4的密文长度通常是16Byte的倍数。当你待加密数据小于16Byte时,你便需要使用填充算法。PKCS7填充算法规则:PKCS7填充单位为16Byte,对于...
2020-03-21 20:20:55
17937
4
原创 Nginx入门及正向代理实例
前言 本文主要讲述Nginx功能、正反向代理部署方式,下一次将讲述Nginx内部参数调优设置和常见问题解决方案。简介Nginx作为一种基于REST架空的Web跨平台服务器。基于事件驱动架构,使得其可以支持数以百万级别的 TCP 连接。由于Igor Sysoev 将 Nginx 代码开源,并且赋予BSD授权协议,因此Nginx拥有丰富的第三方功能插件。安装本文选择的平台是Ubu...
2020-03-14 23:40:42
1557
原创 【记录】Linux服务器关机启动后无法识别到串口文件的解决办法
1、使用lsusb命令查看正常状态下,对应的串口线型号;2、博主使用的是USB转串口线【HL-340】,换了一根【FT232】型号的USB转串口线后,问题便消失了。3、如果其他人出现了串口问题,可以依次去尝试【FT232】、【cp2102】、【pl2303】、【HL-340】型号...
2020-03-11 16:35:23
1068
原创 设备指纹介绍
引言 编写目的 本文主要阐述目前互联网上用于反欺诈解决方案,设备指纹技术。设备指纹技术设备指纹是可以用于唯一标识出该设备的设备特征,设备指纹应用平台主要为手机、Pad、PC等互联网设备。设备指纹技术实现方式分为三种:主动式、被动式、混合式。 主动式设备指纹采集技术 主动式指主动采集设备上固有的、较难篡改的、唯一的设备标识作为设备指纹,用于唯一标识该台设备。这类设备标识统称...
2020-03-01 16:54:01
2655
原创 【CURLE_RECV_ERROR】错误码解决
前言: 年末出大坑,目前博主项目中对外提供的设备接口库涉及到网络通信,部分HTTP请求概率性出现【CURLE_RECV_ERROR】问题。博主使用的是libcurl第三方库进行http请求,由于网上没有查到相关资料,下面记录一下,本次问题分析和解决办法,希望能给其他人提供解决思路。问题定位:通过Wireshark抓包,我对比了正常时候的HTTP流和异常时候的HTTP流。异常HTT...
2020-01-13 00:56:06
5634
原创 【C】【RCRE】正则表达式从入门到实战
前言:正则表达式(Regular Expression)用于检索符合自定义规则的文本。例如在检索用户输入的手机号、身份证号有效性,用户设置的密码是否安全等场景时,正则表达式所体现的功能非常强大。当然,它的缺点也很明显,其不易于阅读。本文示例使用C语言正则表达式引擎RCRE,通过实例让你更快上手。入门:正则表达式是由普通字符(大小写字母、数字、标点等)和元字符组成。常用的元字符如下:...
2019-12-22 18:11:02
714
原创 交叉编译libcurl,遇到libtool: eval: line 1722: syntax error near unexpected token `|'
记录交叉编译libcurl中遇到的编译错误,之前用arm-linux-gnueabihf-gcc编译器,编译正常,但是切换成aarch64-himix100-linux-gcc遇到编译报错libtool: eval: line 1722: syntax error near unexpected token `|'解决方案:1、export NM=nm2、./configure --p...
2019-12-08 22:53:45
839
原创 【以后再也不会用了】Libuv异步定时事务
前言: 应项目需求在设备接口中封装了异步事件处理,考虑到跨平台性选用了libuv工具包,接口需求是异步定时处理一些逻辑运算,结果在对着API使用的过程中发现,libuv在很多回调函数封装中,没有封装传参!大概以后再也不会用了!异步定时事务代码:#include <stdlib.h>#include <uv.h>#include <stdio.h&g...
2019-11-05 16:34:32
315
原创 window动态调用第三方库
前言:最近项目紧急,有一段时间没写博客了。在项目开发过程中,同事问了一个问题,我尝试给他解决后,在此记录一下。在项目中,我针对二种不同的设备,给上层封装了一套C接口,即使用同一个头文件,调用不同的驱动库,即可对设备进行操作。同事在编写上层应用时,不知道如何调用。本文讲述的一个方法是使用【LoadLibrary】、【GetProcAddress】、【FreeLibrary】来解决这个问题,...
2019-11-02 12:48:58
317
原创 异步串口通信框架
前言: 前段时间,服务器增加串口通信需求,早期串口框架仅仅只能支持单串口通信,还不支持热插拔。 由于在网上找了下没有自己想要的框架,因此,自己搭建了一个异步串口通信框架, 目前该框架已投入使用,没有发现内存泄露或者其他问题。该框架运用了【libserialport】【libuv】开源库,二者都支持跨平台,因此在可以放心在其他平台下使用该框架。 如果你确定要使用我的框架,请阅读最后...
2019-08-06 22:46:29
3515
1
原创 C函数获取(Dos/Shell)系统命令输出
#include <stdio.h>#include <stdlib.h>#define SYSTEMFILE "qcard_system.txt"/******************************************************************************** Function Name : QCard_Sys...
2019-08-03 21:35:49
211
原创 【交叉编译】ubantu交叉编译Android平台动态库(.so文件)、静态库(.a文件)
前言: 本文主要写给C工程师,如何提供Android平台的C库给第三方使用。平台:ubantu14.04 64bit交叉编译工具:android-ndk64-r10-linux-x86_64.tar交叉编译工具下载地址: 链接:https://pan.baidu.com/s/1VCttTraUoSh82ENVA4t3Og 提取码:sjwo搭建交叉编译环境:1、将an...
2019-07-25 11:53:05
1935
原创 【记录】Error:LNK2001:无法解析外部符号 _imp__stdio_common_vsprintf
【情节】今天,突然有合作公司的工程师打电话跟我说,他们的工程加入我提供的lib库后报这个问题。我让对方把工程发过来,结果在我的开发环境下直接能编译过。【原因】对方使用的是VS2013,而我的开发环境是VS2017。在VS2013环境下缺少部分Lib标准库。【解决方法】我用VS2010给他们重新编译了一遍库文件。(高版本适配低版本)【结论】集成开发环境到底用新一点还是旧一...
2019-07-23 17:53:34
4723
1
原创 【VS2017】将DLL封装成ActiveX控件(OCX文件)详细步骤
前言 最近组内WEB工程师在做浏览器的加密卡识别登陆功能,由于JS不能进行太复杂操作,因此委托我使用C编写DLL库封装成OCX控件给他调用。我也是第一次编写该类程序,查阅了不少资料,在此分享给大家。 本文使用的平台:Win10系统+Visual Studio 2017软件正文建立工程1、打开Visual Studio 2017软件,点击【文件】、【新建】、...
2019-07-21 21:05:00
7400
2
原创 ubantu14 64位搭建linux-arm交叉编译环境
下载安装包:arm-linux-gcc-4.4.3.tar.gz(https://pan.baidu.com/s/1E3Vtr9TPMBLL24bnrtQLjw password tor3)以root用户运行下面命令1、解压安装包命令:tar xvzf arm-linux-gcc-4.4.3.tar.gz -C /2、创建目录mkdir /usr/local/arm...
2019-07-14 19:37:01
400
转载 设备“VMnet0”上的网桥没有运行。该虚拟机无法与此主机或网络上的其他主机进行通
源:https://jingyan.baidu.com/article/17bd8e521775fb85ab2bb8e0.html解决方案: 故障现象,导致虚拟机无法正常上网 设备管理器中的驱动设备正常加载,但是注意这两个虚拟网卡是有问题的 将这两个虚拟网卡删除 只剩物理网卡了,重新启动电脑 ...
2019-07-05 11:25:40
22277
9
sg.modules
2020-04-21
CUnit单元测试Window平台库和源码
2020-04-07
随机数测试工具及文档
2019-03-30
A-PAINLESS-GUIDE-TO-CRC-ERROR-DETECTION-ALGORITHMS
2019-03-27
cp2102驱动
2019-03-27
ELDK使用与开发手册
2018-03-07
qt入门文档
2017-09-23
MinGW-gcc440_1
2017-09-19
qt-creator-windows-opensource-2.8.0
2017-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人