C/C++
文章平均质量分 75
anda0109
密码学与信息安全,区块链,高速网络,时序数据库,分布式数据库/存储,量子计算。
展开
-
boost::asio的同步方式和异步方式网络编程
http://blog.csdn.net/byrsongqq/article/details/6253435转载 2014-12-02 10:39:58 · 1000 阅读 · 0 评论 -
开源软件库汇总
一、WinPcapwinpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它用于windows系统下的直接的网络编程。原创 2014-11-24 21:47:35 · 1675 阅读 · 0 评论 -
C++中的static关键字
原文:http://blog.csdn.net/hackbuteer1/article/details/7487694C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量转载 2015-01-12 17:29:15 · 857 阅读 · 0 评论 -
STL容器适配器
STL 中包含三种适配器:栈stack 、队列queue 和优先级priority_queue 。适配器是容器的接口,它本身不能直接保存元素,它保存元素的机制是调用另一种顺序容器去实现,即可以把适配器看作“它保存一个容器,这个容器再保存所有元素”。STL 中提供的三种适配器可以由某一种顺序容器去实现。默认下stack 和queue 基于deque 容器实现,priority_q原创 2015-02-02 21:59:04 · 881 阅读 · 0 评论 -
使用wininet接口实现访问http服务
利用wininet接口实现访问http服务:#include "StdAfx.h"#include #pragma comment(lib,"wininet.lib")int main(){ //第一步,连接12306网站服务器 LPCTSTR lpszAgent = L"WinInetGet/0.1"; HINTERNET hInternet = InternetOpen(原创 2014-12-25 11:53:05 · 3835 阅读 · 0 评论 -
排序算法
1、冒泡排序//将小元素冒泡到最前面void BubbleSort1(int arr[],int len){ for(int i=0;i<len;i++) { for(int j=i+1;j<len;j++) { if(arr[j]<arr[i]) swap(arr[i],arr[j]); } }}//将大元素冒泡到最后面void BubbleSor原创 2015-01-13 15:43:15 · 855 阅读 · 0 评论 -
STL关联容器
set, multiset, map, multimap 是一种非线性的树结构,具体的说采用的是一种比较高效的特殊的平衡检索二叉树——红黑树结构。因为关联容器的这四种容器类都使用同一原理,所以他们核心的算法是一致的,但是它们在应用上又有一些差别,先描述一下它们之间的差别。set 又称集合,实际上就是一组元素的集合,但其中所包含的元素的值是唯一的,且是按一定顺序排列的,集合中的每原创 2015-02-02 21:54:37 · 996 阅读 · 0 评论 -
让自己的dll注入到其他进程中运行
下面是一个简单的mydll.dll注入到QQ中运行的wg原创 2014-11-20 12:44:32 · 13592 阅读 · 3 评论 -
使用dll注入技术给windows任务管理器增加功能
本文参考:http://www.pediy.com/kssd/index.html另dll注入参考我的另一篇博文:http://blog.csdn.net/anda0109/article/details/41309973dll注入技术参考我的博文,本文主要是修改应用程序界面和功能的实现,其步骤如下:1、使用spy++找到要修改的窗口的控件ID。2、使用windows API找到控原创 2014-12-10 16:38:01 · 4043 阅读 · 0 评论 -
C++文件读写详解(ofstream,ifstream,fstream)
原文地址:http://blog.csdn.net/kingstar158/article/details/6859379在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view转载 2015-01-15 21:49:55 · 978 阅读 · 0 评论 -
HOOK编程
有时候我们需要拦截windows消息,可以通过HOO完成。安装一个HOOK过程,称为钩子过程。操作系统在消息时,将我们感兴趣的消息先传递给HOOK过程,在此函数中进行检查或者抓取消息。 下面看一个简单的示例://定义钩子过程函数LRESULT CALLBACK KeyBoardProc(int code ,WPARAM wParam, LPARAM lParam){ if(原创 2015-01-10 21:55:17 · 2052 阅读 · 0 评论 -
根据窗口名关闭窗口或窗口所在进程
int KillProcessByTitle(const char* sWindowName){ HWND hWindow=FindWindow(NULL,sWindowName); if(hWindow==NULL) { return 1; } //CloseWindow(hWindow);//只是最小化了窗口并未关闭,所以要关闭进程 DWORD dwProcessID; H原创 2014-12-05 11:17:06 · 3560 阅读 · 0 评论 -
boost.smart_ptr-智能指针scoped_array
参考:《Boost程序库完全开发指南》更多boost相关文章:http://blog.csdn.net/anda0109/article/category/2751005原创 2014-12-18 10:04:06 · 881 阅读 · 0 评论 -
boost.smart_ptr-智能指针scoped_ptr
参考:《Boost程序库完全开发指南》更多boost相关文章:http://blog.csdn.net/anda0109/article/category/2751005原创 2014-12-18 10:06:13 · 1015 阅读 · 0 评论 -
boost.smart_ptr-智能指针scoped_array
参考:《Boost程序库完全开发指南》更多boost相关文章:http://blog.csdn.net/anda0109/article/category/2751005原创 2014-12-18 09:57:21 · 974 阅读 · 0 评论 -
[转]VS2008编译boost库
一、下载首先从boost官方主页http://www.boost.org/下载最新版boost安装包,我用的版本是boost.1.49.0二、新建文件夹 如果是使用下载的安装包,那么请将boost安装包解压至本地新建的目录,如:F:\boost三、编译(1)从vs2008的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“Microsoft转载 2014-05-15 11:00:21 · 1090 阅读 · 0 评论 -
boost.smart_ptr-智能指针scoped_ptr
参考:《Boost程序库完全开发指南》更多boost相关文章:http://blog.csdn.net/anda0109/article/category/2751005原创 2014-12-18 10:05:04 · 844 阅读 · 0 评论 -
指针函数和函数指针
一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函转载 2015-01-08 22:36:55 · 872 阅读 · 0 评论 -
STL顺序容器-deque(双向队列)
deque是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元素的开销很小。它不需要重新分配空间,所以向末端增加元素比vector 更有效。实际上,deque 是对vector 和原创 2015-01-26 17:54:16 · 1058 阅读 · 0 评论 -
boost.smart_ptr-智能指针scoped_ptr
参考:《Boost程序库完全开发指南》更多boost相关文章:http://blog.csdn.net/anda0109/article/category/2751005原创 2014-12-18 10:05:10 · 924 阅读 · 0 评论 -
boost::asio::serial_port串口编程
// boostSerialPort.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;//using namespace boost::asio;int _tmain(int argc, _TCHAR* argv[]){ try { boost::asio::原创 2014-12-04 16:27:10 · 7672 阅读 · 0 评论 -
STL顺序容器-list
list是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个息块(即实际存储的数据)、一个前驱指针和一个后驱指针。它无需分配指定内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中,并且由指针将有序的元素链接起来。由于其结构的原因,list 随机检索的性能非常的不好,因为它不像vector 那样直接找到元素的地址,而是要从头一个一个的顺序查找,这样目标元素越原创 2015-01-23 22:28:51 · 994 阅读 · 0 评论 -
STL顺序容器-vector
vector是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组。在创建一个vector 后,它会自动在内存中分配一块连续的内存空间进行数据存储,初始的空间大小可以预先指定也可以由vector 默认指定,这个大小即capacity ()函数的返回值。当存储的数据超过分配的空间时vect原创 2015-01-23 22:20:29 · 900 阅读 · 0 评论 -
代码实现文件驱动的安装
Windows文件过滤驱动sample中提供的例子,其驱动安装都是通过inf文件右键安装实现的。由于项目中希望实现程序安装,参考了网上的资料,通过服务控制管理器实现。头文件:#ifndef __H_FILTER_H__#define __H_FILTER_H__#include #include /************************************原创 2015-12-04 11:16:07 · 4092 阅读 · 1 评论 -
代码实现利用inf文件安装硬件驱动
代码参考了网上资料并进行了整理:#include "stdafx.h"#include // Make all functions UNICODE safe.#include // for the API UpdateDriverForPlugAndPlayDevices().#include // for SetupDiXxx functions.#include "Dir原创 2015-12-05 12:36:40 · 5323 阅读 · 1 评论 -
Windows进程间通信—命名管道
命名管道是通过网络来完成进程间的通信,它屏蔽了底层的网络协议细节。我们在不了解网络协议的情况下,也可以利用命名管道来实现进程间的通信。与Socket网络通信相比,命名管道不再需要编写身份验证的代码。将命名管道作为一种网络编程方案时,它实际上建立了一个C/S通信体系,并在其中可靠的传输数据。命名管道服务器和客户机的区别在于:服务器是唯一一个有权创建命名管道的进程,也只有它能接受管道客户机的连接请求。原创 2016-04-05 18:36:54 · 3399 阅读 · 0 评论 -
[学习]比较牛的博客搜集
http://blog.csdn.net/tengyunjiawu_com原创 2014-09-30 14:58:33 · 1302 阅读 · 0 评论 -
国密SM1、SM2、SM3、SM4算法资料大全
SM2国密算法证书解析: http://blog.csdn.net/sunboy2718/article/details/38388547?locationNum=7国密算法SM2证书制作: http://www.jonllen.com/jonllen/work/162.aspxC语言实现的SM2数字签名验证: http://blog.csdn.net/henter/article/detai原创 2016-08-23 15:32:03 · 18956 阅读 · 3 评论 -
ubuntu下搭建Eclipse C++开发环境
ubuntu下使用Eclipse下搭建开发环境基本上网上教程一大堆,但是复杂度太大,因为很多教程都是从JDK开始安装一直到最后,而且很多都是从别的linux发行版上弄来的方法,各种编译直接吓死人有木有,其实ubuntu的方便之处很大程度上在于atp的使用,抹杀了atp-get的ubuntu那就太鸡肋了。 OK,正题,再ubuntu下搭建Eclipse C++开发环境。 ...原创 2018-03-08 16:53:28 · 3258 阅读 · 0 评论 -
centos7环境下编译bitcoin
centos7虚拟机安装虚拟机安装完成后需要配置好网络,能连接上互联网后再进行后面操作。vi /etc/sysconfig/network-scripts/ifcfg-ens33 (ens33为网卡名称)TYPE=EthernetBOOTPROTO=static #启用静态IP地址DEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_F...原创 2018-03-06 09:51:36 · 1811 阅读 · 0 评论 -
Windows下编译bitcoin
编译windows版的比特币程序,基本上有两种方法,一种是在linux平台(推荐ubuntu 13.10)通过交叉编译的方法来编译,另外一种就是直接在windows平台编译。第一步:安装变编译环境QT和MINGW,msys1、msys是一个在windows平台模拟shell的程序。访问http://sourceforge.net/projects/mingw/files/Install...转载 2018-03-06 14:55:46 · 1549 阅读 · 0 评论 -
ubuntu安装C++ oracle开发环境(oci)
1、oracle官网下载rpm包 http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 2、安装rpm包 Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb。 sudo apt-get install alien #alien默认没有安装,所以首先要...原创 2018-07-04 10:07:45 · 1734 阅读 · 0 评论 -
CSP应用开发-CryptAPI解析X509及PKCS#12证书
一、解析X509证书1.从磁盘上的证书文件中读取证书数据unsigned char* pbX509Data; // 证书数据unsigned long ulX509DataLen; // 证书数据长度2.获取CertContextPCCERT_CONTEXT pCertContext = CertCreateCertificateContext(X509_ASN_ENC转载 2015-11-24 22:18:29 · 2683 阅读 · 0 评论 -
CSP应用开发-将USBkey中的证书注册到Windows系统
本文转自和讯博客坚实诚金 http://zyf860825.blog.hexun.com/61812512_d.htmlUSBKey是一种USB接口的硬件设备。如坚石诚信的ET199Auto,内置16位国外进口高性能智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书,利用USBKey内置的RSA公私钥算法实现对用户身份的认证。由于用户私钥保存在ET199Auto中,同时智能卡可以转载 2015-11-24 18:25:23 · 2863 阅读 · 0 评论 -
在VC中使用自定义资源制作自解压安装程序
一、前言 在VC环境中除了我们所常用的Dialog、Menu和Bitmap等标准资源类型之外,它还支持自定义资源类型(Custom Resource),我们自定义的资源类型能做些什么呢?呵呵,用处多多。1. 默认的皮肤压缩包或语言包。一些支持换肤的软件特别是一些媒体播放器常常有自定义的皮肤文件(你可以尝试将Media Player或千千静听等软件的Skins目录下的转载 2015-03-26 21:26:56 · 2291 阅读 · 0 评论 -
VS2008编译openssl
操作系统:WIN7 X64编译器:VS2008工具:ActivePerl_5.16.2.3010812913.msi代码:openssl-1.0.1i.tar.gz编译OPENSSL:生成32位动态库、32位静态库一、编译OpenSSL在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。下载最新版本的原创 2014-11-17 10:21:39 · 2737 阅读 · 0 评论 -
Windows下安装RabbitMQ
RabbitMQ官网:http://www.rabbitmq.com/ 下载rabbitmq-server windows安装包。由于其是基于erlang开发的需要erlang的环境。erlang下载地址:http://www.erlang.org/download.html,下载windows版本安装完成后安装rabbitmq-server即可。激活Rabbit MQ's Manag原创 2015-05-17 15:35:21 · 1472 阅读 · 1 评论 -
Cinatra:高性能现代C++ Web框架
http://www.csdn.net/article/2015-07-31/2825354-Cinatra转载 2015-08-02 11:17:23 · 2277 阅读 · 0 评论 -
CSP应用开发-CryptAPI函数库介绍
基本加密函数为开发加密应用程序提供了足够灵活的空间。所有CSP的通讯都是通过这些函数。一个CSP是实现所有加密操作的独立模块。在每一个应用程序中至少需要提供一个CSP来完成所需的加密操作。如果使用多于一个以上的CSP,在加密函数调用中就要指定所需的CSP。微软基本加密提供者(Microsoft Base Cryptographic Provider),是缺省绑定到CryptoAPI 里的。如果转载 2015-11-24 15:28:26 · 7166 阅读 · 0 评论 -
CSP应用开发-加密通信及数字签名中CryptApi的调用流程
一、应用程序使用Crypto API进行加密通信的一般步骤如下:1,添加头文件windows.h、wincrypt.h2,调用CryptAcquireContext()获得某个CSP模块中的密钥容器(key container)的一个句柄;3,发送方使用CryptImportKey()将接受方的证书导入CSP中,从而获得接收方的公钥;4,发送方式用CryptGenKey()随机产生原创 2015-11-24 15:35:02 · 2370 阅读 · 0 评论