c++
张宝马
这个作者很懒,什么都没留下…
展开
-
C++使用function的事件注册
function的玩法有很多,很重要的一个就是用于事件回调 以前用的某些数据库有的用面向对象方法,用一个专门的事件类,经过重写虚成员函数来实现事件的触发,但是这种方法如果要添加多个事件的话比较麻烦。 现在的很多都是基于对象通过function来实现的,这样就很方便管理每个事件的添加与删除了: 下面是一个简单的例子,类似C#的关键字event来保存委托的注册事件 头...原创 2018-03-18 01:44:27 · 1977 阅读 · 0 评论 -
windows下查看错误码与错误信息
在linux下#include<errno.h>后,错误码被直接写在errno这个全局变量中,错误信息可以通过perror(const char* __s)查看。在Windows下需要#include<Windows.h>,调用GetLastError(void)这个全局函数来查看错误码。查看错误信息可以参考下面这个例子(来自msdn):#include <windo...原创 2018-03-25 23:01:26 · 4235 阅读 · 0 评论 -
jsoncpp的使用demo
Jsoncpp下载地址:https://github.com/open-source-parsers/jsoncpp编译生成后的库文件为:jsoncpp.lib下面是一个使用的demo,copy过去自己看看就会了:#include <iostream>#include <fstream>#include <ostream>#include <asse...原创 2018-04-08 21:29:55 · 904 阅读 · 0 评论 -
Windows下利用共享内存和事件对象实现进程间的通讯
本来项目想用一个第三方数据处理库,结果不知道有什么冲突,第三方库编译的dll死活就是调用不了。想想干脆再把第三方库写成一个exe得了。之前对windows的IPC机制也不熟,估计跟linux也有很多相似的地方,就先实现个简单的模型。 源代码: 点击打开链接 https://github.com/wrsjhhe/IPC_win先说一下需求: 1.在同一个计算机上,有两...原创 2018-04-06 01:57:55 · 1360 阅读 · 0 评论 -
文件夹锁,防止一个应用多开的情况下访问共同文件夹
一个应用开两次,第二个将被阻塞直到第一个退出#include <mutex>#include <thread>#include <string>#include <map>#include <boost\filesystem.hpp>#include <boost\interprocess\sync\file_lock.h...原创 2018-04-20 00:18:22 · 1221 阅读 · 0 评论 -
一个例子搞懂static和extern在全局变量上的区别
//test.h#ifndef TEST1H#define TEST1H#include <iostream>static char g_str1[] = "123456";extern char g_str2[];void fun1();void fun2();#endif//test1.cpp#include "test.h"void fun1(){ st...原创 2018-05-13 23:45:10 · 5323 阅读 · 0 评论 -
MD5的c++实现流程
md5的输入可以为任意长度,加密后的输出为128位。第一步,追加填充位把输入的数据填充,使其输入的数据长度位数(bit)长度除512的余数为448。填充是必须的,即使本来的位长除512的余为448,也要再填充512位,也就是说最少填充1位,最多512位。因此,最后信息的长度为N*512+448,N>=0。填充后的最短信息为448位。填充的方法是,在原来信息的后面填充一个1和好几个0,直到满足...原创 2018-05-20 20:57:16 · 1885 阅读 · 1 评论 -
ripemd160的c++实现
参考:https://homes.esat.kuleuven.be/~bosselae/ripemd160/头文件:#pragma once/********************************************************************\** FILE: rmd160.h** CONTENTS: Header file...转载 2018-05-20 23:50:21 · 1776 阅读 · 2 评论 -
opencv+cuda编译出现LNK2019 cv::__termination错误
修改modules/opencv_cudev/CMakeLists.txt, 在set(the_description "CUDA device layer")增加下一行set(OPENCV_SKIP_DLLMAIN_GENERATION ON)原创 2018-11-12 21:31:59 · 602 阅读 · 0 评论