C++
米乐-miller
这个作者很懒,什么都没留下…
展开
-
HOOK 钩子编程
所谓钩子函数就是对windows下的如(键盘或鼠标)等消息的过滤处理,通过钩子回调函数来进行截留处理。 一共有两种类型的钩子:局部的和远程的。局部钩子仅钩挂您自己进程的事件。远程的钩子还可以将钩挂其它进程发生的事件。远程的钩子又有两种:钩子分两种, 一种是系统级的全局钩子; 一种是线程级的钩子.全局钩子函数原创 2013-03-04 19:05:23 · 959 阅读 · 0 评论 -
directui库和winnt.h中相冲突
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h和directui库相冲突的解决方案是在winnt.h文件的288行添加#define POINTER_64 __ptr64即可原创 2013-04-16 14:46:22 · 889 阅读 · 0 评论 -
多进程共享动态链接库的原理
当多个进程共享dll时,其实内存中只保留一份dll代码,而每个进程调用dll的导出函数或类等等时是单独在进程的堆栈上分配空间的,也就是说每个调用dll的进程单独保留自己使用到的数据,各个进程互不影响。所谓的多进程共享其实就在内存中保留dll代码的空间内“做文章”,如多个进程共享一个dll时,使用LoadLibrary和GetProcAddress得到的地址是一样的,也说明内存中保留一份dll,每个原创 2013-02-28 19:25:41 · 6020 阅读 · 0 评论 -
DLL 的编写,导出函数
//在编程c++dll时 extern "C"和.def的作用 extern "c"是c++编译器在编译函数时以c编译器的方式处理函数名 而.def的作用也是告知编译器以.def导出的文件名的方式编译函数名动态链接库的使用有两种方式,一种是显式调用。一种是隐式调用。(1) 显式调用:使用LoadLibrayr载入动态链接库、使用GetProcAddress获原创 2013-02-28 14:35:04 · 19600 阅读 · 1 评论 -
Interlocked系列函数运用----错误码的返回
Long g_lErrorID = 0;LONG _IN_SetLastError( LONG lError ) { return InterlockedExchange(&g_lErrorID, lError);}LONG _IN_GetLastError() { return g_lErrorID;}原创 2013-03-06 14:32:00 · 770 阅读 · 0 评论 -
C++标准库中的排序函数 sort和qsort
void qsort(数组名,数组长度,每个元素的大小,比较函数)其中比较函数 主要是决定是升序还是降序排列例如:int compare(void*a, void*b)#include { return *a-*b; 升序排列 return *b-*a; 降序排列 }原创 2013-02-22 16:01:55 · 923 阅读 · 0 评论 -
stl中vector和deque的比较
在这篇文章中我们覆盖了多种不同的情况来选择我们到底是该使用vector还是deque。让我们总结一下测试的结果看下面几个结论。当执行大数据量的调用push_back()的时候,记住要调用vector::reserve()。在实验一中我们研究了vector和deque在插入数据的情况。通过这些假设,我们可以看出deque分配的空间是预先分配好的,deque维持一个固定增长率,在vec原创 2013-02-22 15:45:04 · 1107 阅读 · 0 评论 -
线程同步,互斥 事件 和关键代码的比较
转载 2013-03-04 19:25:46 · 586 阅读 · 0 评论 -
C++内存分配—new,malloc,GlobalAlloc详解
C++内存分配秘籍—new,malloc,GlobalAlloc详解 C++内存分配秘籍—new,malloc,GlobalAlloc详解 _______只为因内存分配而无法入眠的程序员1.new是标准转载 2013-03-04 10:54:44 · 1170 阅读 · 0 评论 -
动态库中数据可以为多进程共享的方法
如何使一个dll数据值可以为多进程共享?如何使动态数据库中的g_nvalue值为多进程共享呢?实例如下:#pragma data_seg("hookdll")int g_nvalue = 5; //必须要初始化#pragma data_seg()#pragma comment(linker,"/SECTION:hookdll,RWS") HOOK_API i原创 2013-03-04 19:12:20 · 1913 阅读 · 0 评论 -
SHELLEXECUTEINFO
第一篇 SHELLEXECUTEINFO 和 ShellExecuteEx的使用 使用SHELLEXECUTEINFO和ShellExecuteEx,我也主要是在cab包的安装时使用的。基本上是这样使用的,如下: SHELLEXECUTEINFO ShellInfo; memset(&ShellInfo, 0, si原创 2013-07-05 11:06:05 · 1670 阅读 · 0 评论