- 博客(19)
- 收藏
- 关注
原创 wdk1703+vs2015编译的诡异问题
最近将wdk升级到1703(10.0.15063.0)版本,编译一个新建的minifiter项目居然出现了失败提示错误为 WindowsDriver.common.targets(460,5): error MSB6004: The specified task executable location "\stampinf.exe" is invalid. 解决如下:https:/
2018-01-13 18:22:42
5307
原创 boost的named_mutex的一些坑
最近遇到一个问题,程序在a用户下运行后,然后注销windows,登陆b用户,发现程序奔溃,抓了下堆栈,发现了boost的named_mutex一些细节,记录下123#include #include boost::interprocess::named_mutex mutex(boost::interprocess::open_or_
2017-05-09 19:19:26
1621
原创 vc远程调试启动进程(非attach)
被调试端设置同attach进程方式的远程调试代码端,需要在[Project] [Properties] [Configuration Properties] [Debugging]。将Debugger to launch选为Windows Remote Debugger.然后设置如图:
2016-08-26 15:21:58
597
原创 jvm的client和server
最近研究c++代码调用java的jar,发现64位的下的jvm在server路径,而32位的jvm则存在client路径下面,于是十分好奇,查了下,这里做个记录 JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.原因是:当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译
2016-08-26 11:42:59
234
原创 sqlite的事务
好久没用数据库,知识都忘了,之前用sqlite 逐行insert数据,发现这性能实在是太坑,10w条数据,插入大约花了100来分钟.后来发现还有事务这么一个东西,可以大幅度降低对io的操作,测试插入40w数据,大约花了5分钟左右,比之前的逐条插入可是666WCHAR szBuffer[MAX_PATH] = { 0 };WCHAR szBuffer2[1024] = { 0 };
2016-08-19 18:01:00
325
原创 sqlite编译
1.下载代码:http://www.sqlite.org/download.html ,windows下下载sqlite-amalgamation-xxx.zip和sqlite-dll-win32-x86-xxx.zip(需要里面的def文件)版本即可。2.将下载的压缩包解压,得到里面有shell.c、sqlite3.c、sqlite3.h,sqlite3ext.h和sqlite3.def这么
2016-08-15 15:11:26
272
原创 libtcmalloc 简单使用
下载地址: https://github.com/gperftools/gperftools这个编译很简单,直接进入vsprojects\libtcmalloc_minimal,用vc编译即可,整个过程倒是很顺利用的时候包含头文件和lib即可 不过需要注意2点1.不能和vld一起使用,否则会在tcmalloc的PopulateWindowsFn函数里面崩溃,因为取不到函数地址
2016-08-03 14:46:04
1328
原创 vc2015编译protobuf
123mkdir build & cd buildmkdir solutionx86 & cd solutionx86cmake -G "Visu
2016-08-01 18:59:56
1655
原创 libcurl下载文件简易demo
size_t test_save(void *ptr, size_t size, size_t nmemb, void *stream){ size_t sizes = size * nmemb; DWORD dwHasWritten; WriteFile((HANDLE)stream,ptr,sizes,&dwHasWritten,NULL); return s
2016-07-26 16:00:49
1370
原创 vc2015 编译libcurl带openssl
1.先编译zlib下载地址 http://zlib.net/我这边vc2015编译需要配置环境变量,不知道是装了wdk的原因还是多个vc版本的原因设置环境变量lib和include路径INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um;C:\Program Files (x86)\Window
2016-07-25 16:47:28
1915
1
原创 驱动开发杂记1
安装驱动的时候刚开始不要设置为随机启动一般来说新建的驱动是KMDF Driver类型在WDF节点下面 编译选项记得改下,否则直接蓝屏使用dbgview捕获驱动输出1.首先,在注册表中设置:HKLM/SYSTEM/CurrentControlSet/Control/Session Manager,打开或者创建子项Debug Print Filter,然后新建一
2016-05-15 17:12:01
251
原创 windbg vmware win7联机调试环境搭建
接下来设置虚拟机启动模式,可以直接设置现在的虚拟机启动项为debug模式或者直接新建一个启动项目bcdedit /dbgsettings {serial [baudrate:value][debugport:value] | 1394 [channel:value] | usb }bcdedit /dbgsettings serial baudrate:115200 d
2016-05-14 14:33:08
990
原创 boost vc编译
1.编译b2.exe,bjam.exe.双击根目录下面的bootstrap.bat文件,生成b2.exe,bjam.exe如果编译64位需要vs的cmd窗口,如VS2013 x64 Native Tools Command Prompt进入到boost根目录下面运行bootstrap,编译b2.exe,biam.exe. 2.用b2.exe生成64位的libb2 stage --toolset=m
2015-09-29 20:49:33
454
原创 c++回调实现
回调是A将一个函数指针传给B,然后调用B,B在执行自身函数后,再在合适的时候执行A的这个函数指针,这样就能避免A和B的相互包含和链接,在大型项目中回调是一种打破循环依赖的常用技术。typedef void(CALLBACK* MyCallBack)(const char *);typedef void(*MyFuncB)(MyCallBack, const char *);/
2014-12-07 22:22:20
301
原创 stl学习之模板
可以定义多种类型的形参。templateclass CTest{...};对象实例化时:CTest testA;CTest testB函数模板就是建立一个通用的函数,其函数返回类型和形参类型不具体指定,而是用虚拟的类型来代表。凡是函数体相同的函数都可以用函数模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟
2014-11-15 16:26:59
408
1
原创 stl学习之字符串
其实string也是stl里面的内容,记录几点自己不常用的内容1.at方法(比[]会判断是否越位)2. int copy(char *s, int n, int pos=0) const; 把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目。注意要保证s所指向的空间足够大以容纳当前字符串,不然会越界3. string &erase(int pos=
2014-11-15 15:40:18
322
原创 OpenSSl编译
1.下载openssl代码,下载地址:http://www.openssl.org/source/ ,如果使用winrar解压失败的话(提示不能创建符号链接),可以关闭UAC。2.下载安装ActivePerl,下载地址:http://www.activestate.com/activeperl 3.从Windows开始菜单运行“Visual Studio Command Prompt (2
2013-12-07 19:19:26
826
原创 Performing Post-Build Event之类的编译错误
如果编译出现Perror PRJ0019: A tool returned an error code from "Performing Post-Build Event..."之类的错误,说明是VC的Post-Build失败了,这个功能可以将编译完成后的文件复制到你想要的目录下面,方便使用,是个不错的功能。之前纠结了很久,网上很多抄来抄去的解决方法就是取消掉这个功能,这个明显是自欺欺人,其实可以
2013-10-25 23:59:16
826
原创 导出函数,非导出函数,公开函数,非公开函数
导出函数:顾名思义,出现在导出表(EAT)里面的函数,可以给外部调用的函数,验证是否为导出函数的方法,熟悉逆向的朋友可以使用LordPE之类的工具查看,当然也可以使用GetProcAddress或者MmGetSystemRoutineAddress之类的函数来获取地址,如果成功的话就是导出函数。非导出函数:这种函数是供自己调用使用的,不想提供给别人使用,当然也有方法可以获取函数地址,可以根据函
2013-09-08 11:36:03
683
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人