自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (3)
  • 收藏
  • 关注

原创 股市研究二

1. 医药板块2. 口罩板块3. 化工板块4. 黄金板块5. 农业板块6. 特高压板块7. 5G板块8. 石油板块9. 券商板块10. 农药板块11. 基建板块12. 科技板块—需分类...

2020-03-18 17:45:38 233

原创 Windows下CMake的安装和使用

CMake是一个跨平台的编译工具。CMake可以编译源代码。CMake首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件(如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程)。Linux下使用CMake生成 Makefile并编译的流...

2020-03-03 17:15:01 815

原创 客户端程序员需要掌握的技术框架

不想做螺丝钉的程序员们,开始努力积累技术吧!

2019-12-12 12:05:24 464

原创 YUV数据格式解析

YUV格式有两大类:planar和packedplanar的YUV格式:先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。packed的YUV格式:每个像素点的Y,U,V是连续交*存储的。YUV的含义:YUV,分为三个分量“Y”表示明亮度(Luminance或Luma),也就是灰度值;“U”和“V” 表示的则是色度(Chrominance或Chroma...

2019-11-24 17:06:49 452

原创 Duilib库对象解析 2— XML解析器CMarkup

CMarkup类:xml解析器,目前内置支持三种编码格式:UTF8、UNICODE、ASNI,默认为UTF8;CMarkupNode类:xml节点类CMarkup类XMLELEMENT: xml节点元素类型定义 typedef struct tagXMLELEMENT { ULONG iStart; ULONG iChild; ...

2019-10-30 17:32:14 331

原创 Duilib库对象解析 1— 控件构造器CDialogBuilder

CDialogBuilder:控件构造器,主要用以解析xml配置文件并以此创建相应控件及相关属性。OnCreate创建控件如下: m_pm.Init(m_hWnd); CDialogBuilder builder; CControlUI* pRoot = builder.Create(_T("hall.xml"), (UINT)0, 0, &m_pm); ...

2019-10-30 17:07:52 679

原创 Duilib流程解析1—dui程序初始化

Dui程序初始化流程int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ // 第一步: 实例句柄与渲染类关联 CPaintManagerUI::SetInstance(hInstance); CPaintManagerUI...

2019-10-30 16:37:29 747

原创 DuiLib简介

duilib库是一款轻量级的C++界面开发库,遵循开源BSD协议,可以免费用于商业项目,由杭州月牙儿网络技术有限公司开发。duilib库的源码下载地址:https://github.com/duilib/duilib。传统MFC界面库有如下问题:1) 不美观2) 界面细节处理不好3) 使用硬编码4) 开发效率低下5) 生成程序体...

2019-10-30 14:52:11 11454

原创 WM消息大全

WM消息大全及备注 消息名 消息值 说明 WM_CREATE 0x0001 应用程序创建一个窗口 备注:创建时发出消息WM_CREATE,但是在这个消息之前还有一个消息是被发出的WM_NCCREATE WM_DESTROY 0x00...

2019-10-28 16:30:35 295

原创 Duilib的基础架构

首先整理了一份Duilib的整体设计图:接下来我们从几个方面学习Duilib库:1.库的组成;2.基本框架流程;3.元素创建机制;4.消息处理机制;一.Duilib库的基本组成1.1 工具库由于duilib没有对外部的任何库进行依赖,所以在其内部实现了很多用于支撑项目的基础类。这些类分布在Util文件夹中:UI相关(基本绘图元素):CPoint、CSize、CRect...

2019-10-28 16:00:12 422

原创 磁盘序列号获取之坑

场景:首先场景时发生在自己写的量化交易客户端软件上,券商交易,要求记录用户操作计算机的IP,网卡MAC地址,硬盘序列号信息。其中IP与网卡MAC地址是很容易获取到的,硬盘序列号其实获取也不难,只不过在低版本Windows系统行就有了坑,比如Windows7,通过相关命令获取到的并不是真正的序列号,而是经过每4位HEX字符经过little endian的总长为40为的字符串。比如:命令...

2019-10-16 17:37:59 4387 6

原创 Sqlite3加密函数sqlite3_key sqlite3_rekey

sqlite3_keysqlite3_key是输入密钥,如果数据库已加密必须先执行此函数并输入正确密钥才能进行操作;如果数据库没有加密,执行此函数后进行数据库操作反而会出现“此数据库已加密或不是一个数据库文件”的错误。int sqlite3_key( sqlite3 *db, const void *pKey, int nKey),db 是指定数据库,pKey 是密钥,nKey 是密钥...

2019-10-10 15:53:15 3954 1

原创 音频基础知识

声音的三要素:频率, 振幅, 波形频率代表音阶的高低(女生的音阶高,男生偏低), 频率越高,波长就会越短.振幅代表响度波形代表音色音频采样:对模型信号进行采样,采样可以理解为在时间轴上对信号进行数字化AD转换:按比声音最高频率高2倍以上的频率对声音进行采样.采样率:声音频率为500次,采样1000次,采集顶峰或底峰数据;前面提到高质量音频信号,其频...

2019-09-20 16:48:38 253

原创 对称加密—AES

AES简介AES:Advanced Encryption Standard 密码学中的高级加密标准,是一种区块加密标准。DES:Data Encryption StandardAES的区块长度固定为128位,密钥长度则可以是128,192或256位AES是一种对称加密算法AES的加密模式对称/分组密码一般分为流加密(如OFB、CFB等)和块加密(如ECB、CBC等)。...

2019-09-19 22:45:51 943

原创 SHA256WithRSA签名和验签过程

SHA256算法:哈希值长度是256位的一种哈希算法。哈希算法:一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。RSA加密算法是一种非对称加密算法。以下是基于OpenSSL实现的SHA256WithRSA签名和验签功能RSASign.h#include <openssl/objects.h>#include <openssl/rsa.h>#...

2019-09-19 17:36:28 7758 2

原创 非对称加密算法—RSA

RSA加密算法是一种非对称加密算法。RSA公开密钥密码体制:加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,由于无法计算出大数n的欧拉函数phi(N),所以不能根据PK计算出SK。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。...

2019-09-19 14:27:21 883 1

原创 数字签名和验签

数字签名数字签名使用了公钥加密领域的技术;通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串标明这段信息是发送者发送的。数字签名是非对称密钥加密技术与数字摘要技术的应用。数字签名的作用:保证信息传输的完整性(数字摘要) 确认发送者的身份认证、防止交易中的抵赖发生(非对称密钥加密技术)数字签名过程:...

2019-09-19 13:55:51 1083

原创 对称加密和非对称加密简介

对称加密对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,也称为单密钥加密优点:算法公开、计算量小、加密速度快、加密效率高缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。应...

2019-09-19 00:04:20 263

原创 OpenSSL源码下载及编译

openssl官网:https://www.openssl.org/到Openssl官网的【Download】标签下,选择下载最新的版本:openssl-1.1.1d.tar.gz解压文件至文件夹openssl-1.1.1dWindows编译Openssl:1. 安装Active perl(因为openssl配置是使用perl写的,因此需要你安装一个perl环境) ...

2019-09-18 23:15:11 5139

原创 OpenSSL基本介绍

OpenSSL的简介:OpenSSL:开放源代码的软件库包(SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输 )作用:安全通信。应用范围:应用在互联网的网页服务器上影响:Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。已经成为Internet上保密通讯的工业标准。SSL是如...

2019-09-18 22:20:38 1410

原创 编程 之 唯一标识符

A唯一的标识一个设备是一个基本功能,可以拥有很多应用场景,比如软件授权(如何保证你的软件在授权后才能在特定机器上使用)、软件License,设备标识,设备身份识别等。(1)网卡MAC地址 MAC地址可能是最常用的标识方法,但是现在这种方法基本不可靠:一个电脑可能存在多个网卡,多个MAC地址,如典型的笔记本可能存在有线、无线、蓝牙等多个MAC地址,随着不同连接方式的改变,...

2019-08-30 14:22:40 1328

原创 C++获取各类网卡信息

A-网卡可分为物理网卡与虚拟网卡简单来说,物理网卡就是硬件,虚拟网卡是软件。物理网卡就是安装在电脑主板上的有线或无线网卡,每块物理网卡都有不同的且唯一的物理地址(MAC地址)。虚拟网卡则是通过软件模拟网络环境,构建的虚拟网络适配器,一般是Microsoft Loopback Adapter,通过VPN技术实现虚拟网卡间的局域网通信。物理网卡分为:有线网卡、无线网卡、蓝牙设备的网...

2019-08-30 13:48:05 3644

原创 SVN常用功能使用说明

ING1. 从服务器下载新代码,右键SVN CheckOut:(1). 可以将整个工程目录下载到本地,然后编译(2). 如果本地项目是由多个代码地址构成,保证它们的相对路径跟服务器一致,方能编译通过2. 提交代码右键 SVN Commit:(1). 如果其它人没有更改相关文件,则提交成功;(2). 如果其它人更改了相关文件,会有提示,点击update更新提示,然...

2019-04-10 20:36:17 395

原创 C++操作注册表

HKEY的值:HKEY_LOCAL_MACHINE:与机器相关的属性,所有用户共用的属性。例如开机启动就在这里。HKEY_CURRENT_USER:与用户相关的属性,可能只有用户特有。例如开机启动就在这里。REG_OPTION_VOLATILE:这个参数的意思是创建的注册表键值都位于内存中,不会保存到相应的注册表文件中。重启后这些键值当然就没有了。REG_OPTION_NON...

2018-12-17 23:28:08 534

原创 C++杀死指定进程(Windows)

ING一.通过系统命令杀死进程通过系统命令杀死进程,有黑窗口闪烁bool KillProcess(vector<string> &processNameVec){ bool result = false; string strProcess; HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32...

2018-12-17 23:16:53 7969 2

原创 判断Windows系统版本及位数(XP or Vista 64 or 32)

A1. 判断Windows系统是否Vista及以上 BOOL IsVistaOrLater() { OSVERSIONINFOEX osvi; BOOL bOsVersionInfoEx;#pragma warning(disable: 4996) ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVe...

2018-08-06 23:26:05 856

原创 TortoiseGit SSH拉取GitLab代码

ING前述Git获取远端代码的方式主要有两种https和SSH这两种方式的主要区别在于:1.https url克隆会比较方便,复制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetch和push代码都需要输入账号和密码,这也是https方式的麻烦之处。2.SSH url克隆却需要在克隆之前先配置和添加好SSH key,因此,如果你想...

2018-07-26 16:32:14 7120 1

原创 TortoiseGit安装配置

下载git Windows客户端git客户端下载地址:https://git-scm.com/downloads我这里下载的是Git-2.14.0-64-bit.exe版本下载TortoiseGitTortoiseGit客户端下载地址:https://tortoisegit.org/downloadTortoiseGit客户端要下载两个,一个是安装程序,一个是中文语言包上述...

2018-03-14 13:31:31 1263

原创 Git、GitLib、GitHub和GitLab

1. Git和GitHub是什么关系?git是一个版本控制工具github是一个用git做版本控制的项目托管平台 2.Git和GitLib是什么关系?GitLib是实现Git功能的开发库 3.GitHub和GitLab的区别?二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、...

2018-03-14 11:47:37 1486

原创 URI与URL详解

 URI,URL,URN从上面的那幅图可以看出来,一共有三个不同的概念URI,URL,URN。这讨论这样的问题时,最好的方法就是回到原点啊,这里我们在RFC 3986: Uniform Resource Identifier (URI): Generic Syntax里面收集了点资料:“A Uniform Resource Identifier (URI) 是一个紧凑的字符串用来标示抽...

2018-03-13 20:34:59 608

原创 Log4cpp介绍及使用

 Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、本地syslog和远程syslog服务器中。1、Log4cpp简介  Log4cpp是个基于LGPL的开源项目,移植自Java的日志处理跟踪项目log4j,并保持了API上的一致...

2018-03-07 20:58:01 4821

原创 VS2015程序打包成安装包

一、在这里宝丫头用一个已有的自己写的小程序“MyExplorer”来进行测试,此程序里用了一些动态链接库DLL文件和Access数据库。 二、在Solution ‘MyExplorer’(解决方案)上“右击”—— “添加”——“新建项目”,  选择“其他类型项目”——“安装和部署”——“安装项目”,并命名为“MyExplorerSetup”,如下图所示:

2018-01-23 12:53:46 18478 3

原创 程序设计—数据的维护

面向对象的数据维护: 我们在进行多线程编程的时候,经常会操作同一份数据,于是我们在各个线程中加锁,这个过程是面向过程的。如果需要保护的数据很多,那将会是极其复杂的。我们可以将数据封装成一个对象,对外提供操作接口,这些接口是线程安全的,多线程操作这些数据不需要考虑安全问题,那多线程编程将会变的简单。面向对象的数据保护是极其重要的。如果数据的保护逻辑和产品的业务逻辑混杂在...

2018-01-17 13:05:30 664

原创 C++多线程方法总结

方法一:临界区两个线程共享资源,谁先获取谁使用int num=1;CRITICAL_SECTIONCritical;//临界区变量unsigned long _stdcall ThreadProc1(void*lpParameter){while(num<100){EnterCriticalSect...

2018-01-10 20:15:01 533

原创 常见C++字符转换

现在的VS2013基本默认Unicode字符集,而Unicode默认是双字符的,所以通常我们会遇到双字符和单字符之间的转换:[解决方案下项目右键-属性-常规-字符集]string 与 char*之间的转换string转char*:char* p = string1.c_str();char*转string:char charString[8] = {"hello"};stri...

2018-01-10 20:12:08 621

原创 基于类的线程安全—ING

我们操作一块不存在的内存,很可能会奔溃;在有些情况下,我们很容易忽视的操作已经被释放的内存。例:类的线程操作已经删除的类对象class tcpTransport{public:private:staticDWORD WINAPI ThreadProcSend(LPVOID lpParam);};在tcpTransport线程中创建类的线程(可用于发心跳,重连)...

2018-01-10 20:03:42 247

原创 MFC,JAVA 和QT

对于一个程序工作者来说,使用什么样的开发环境无疑是最为重要的。首先,来明确几个概念:C语言:是一种面向过程的高级程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。(它只是一种语法和规约,和你使用的VC6.0或是TuberC是没有任何关系的)。C++:在长期的编程实践中,人们认识到C的代码执行效率和可以重复使用的代码利用率并不是很高……当C语言发展到顶峰的...

2018-01-10 19:57:00 2134 1

原创 Sqlite内嵌到C++代码中

SQLite,是一款轻型的数据库,遵守ACID的关系型数据库管理系统。它包含在一个相对小的C库中.它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程...

2018-01-10 19:50:44 928

原创 QT常用类型转换

把Int, Float, Double转化为QString类型方法1:Long a =63;QStrings=QString::number(a,10);//s=="63"QStringt=QString::number(a,16).toUpper();//t=="3F"方法2:Long a =6...

2018-01-10 11:39:39 321

原创 关于ANSI,UNICODE与UTF-8的区别及转换

先做一个小小的试验:在一个文件夹里,把一个txt文本(文本里包含“今天的天气非常好”这句话)分别另存为ansi、unicode、utf-8这三种编码的txt文件。然后,在该文件夹上点击右键,选择“搜索(E)…”。搜索“天气”二字,可以搜索出ansi和unicode这两种编码的txt文件,搜索不出utf-8编码的文件。原因:1.中文操作系统默认ansi编码,生成的tx...

2018-01-09 12:04:54 1082

sqlite3.rar

sqlite3源码, VS2015工程,支持加密;直接编译即可成功

2019-10-08

C++使用Openssl进行RSA加密解密及签名验签功能(SHA256)

使用Openssl实现RSA的加密和解密过程;使用Openssl实现签名和验签过程;SHA256WithRSA签名验签过程;封装很好,一看就懂,直接使用!

2019-09-19

空空如也

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

TA关注的人

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