windows编程
文章平均质量分 70
zicheng_lin
学习.....
展开
-
关于windows 伪句柄
《windows核心编程》里提到了“伪句柄”一词,故名思议,它并不是真的句柄,有时候不会达到你想要的效果。边看代码,边解释代码如下: // 伪句柄.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;原创 2011-06-27 16:59:00 · 1476 阅读 · 0 评论 -
windows 截屏api
/*----------------------------------------BRICKS1.C -- LoadBitmap Demonstration(c) Charles Petzold, 1998----------------------------------------*/#include #include #include #include //#includ原创 2011-11-24 17:29:24 · 14483 阅读 · 0 评论 -
Detours使用说明
Detours使用说明 1 介绍2 Detours API hook2.1 hook DLL 中的函数2.2 hook自定义c 函数2.3 hook类成员函数2.4 DetourCreateProcessWithDll2.5 Detouring by Address 1 介绍 Api hook包括两部分:api调用的截取和api函数的重定向。通过api转载 2012-02-06 16:02:38 · 922 阅读 · 0 评论 -
windows 双缓冲绘图
windows双缓冲的作用:解决大多数闪烁问题因为,当我们需要不停的在屏幕上绘制图案的时候,窗口会不停的被重绘,这就导致出现闪烁问题。双缓冲技术的原理: 先将要绘制的图全部写进一个内存DC里,然后将内存DC里的内容,一次性绘制到窗体上。简单的说一下步骤:1.创建一个窗体的兼容DC: HDC hdcD原创 2012-01-05 19:30:36 · 3216 阅读 · 0 评论 -
GDI+ 相关用法
#define GDIPVER 0x0110 //定义高版本的GDI+(1.1)#include #include #include #include #pragma comment(lib,"GdiPlus.lib")using namespace Gdiplus;VOID OnPaint(HDC hDC){ //在此处添加重绘代码}LRESULT WINAPI W原创 2012-01-04 18:45:02 · 4562 阅读 · 1 评论 -
win api 路径操作函数
一个朋友整理的放在他网站上lilu.name,用的时候看的也方便,就贴过来,表示感谢...路径截断与合并函数 PathRemoveArgs去除路径的参数PathRemoveBackslash去除路径最后的反斜杠“\”转载 2012-02-22 17:06:00 · 958 阅读 · 0 评论 -
win7下关闭 最大化最小化时候的动画
SystemParametersInfo( SPI_SETANIMATION, animInfo.cbSize,&animInfo,0);ANIMATIONINFO animationInfo={sizeof(ANIMATIONINFO),0};SystemParametersInfo(SPI_GETANIMATION,sizeof(ANIMATIONINF原创 2012-03-08 17:12:51 · 2237 阅读 · 0 评论 -
test
#define GDIPVER 0x0110 //定义高版本的GDI+(1.1) #include #include #include #include #pragma comment(lib,"GdiPlus.lib") using namespace Gdiplus; VOID OnPaint(HDC hDC) { /原创 2012-11-12 16:42:33 · 699 阅读 · 0 评论 -
win32 连接图片
win32连接图片原理: 将图片1写入到一个 内存位置,将图片2写到另一个内存位置,然后新建一个新的足以容纳这2张图片的内存,分别将2个图片,依次拷贝到较大的新的内存位置.先来看看代码: /*----------------------------------------BRICKS1.C -- LoadB原创 2011-11-21 22:15:08 · 773 阅读 · 0 评论 -
连接图片(二),实现根据鼠标方向,平滑移动
/*----------------------------------------BRICKS1.C -- LoadBitmap Demonstration(c) Charles Petzold, 1998----------------------------------------*/#include #include #include LRESULT CALLBACK Wn原创 2011-11-22 15:31:50 · 1564 阅读 · 0 评论 -
windows critical section (关键段)
不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它进行访问。每个线程中访问临界资源的那段代码称为临界区(Critical Section)。 每个线程中访问临界资源的那段程序称为临界区(Critical Section)(临界资源是一次仅允许一个线程使用的共享资源)。每次只准许一个线程进入临界区,进入后不允许其他线程进入。不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它原创 2011-06-30 23:57:00 · 3311 阅读 · 0 评论 -
原子访问--- Interlocked系列函数
我们都知道,windows是一个抢占式的多线程环境,因此系统可能会在任意时刻暂停一个线程,切换到另一个线程让新的线程继续执行。请看这段代码: // Interlocked.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using namespace std;DWORD WI原创 2011-06-30 14:49:00 · 846 阅读 · 0 评论 -
windows 条件变量
我们已经看到,当想让写入者线程和读取者线程以独占的方式或共享的方式访问一个资源的时候,可以使用SRWLock。在这些情况下,如果读取者线程没有数据可以读取,那么它应该将锁释放并等待,直到写入者线程产生了新的数据为止。如果用来接收写入者线程产生的数据结构已满,那原创 2011-07-03 21:19:01 · 10193 阅读 · 4 评论 -
让可等待的计数器添加APC应用
当计数器触发的时候,Microsoft允许计时器把一个异步过程调用(APC)放到SetWaitableTimer的调用线程的队列中。 通常,当我们调用SetWaitableTimer的时候,会给pfnCompletionRoutine 和 pvArgToCompletio原创 2011-07-06 22:48:05 · 1113 阅读 · 0 评论 -
用 QueueUserAPC() 函数来强制线程退出等待状态
当系统创建一个线程的时候,会同时创建一个与线程相关的队列。这个队列被成为异步过程调用(APC)队列。同时我们也知道,windows提供了6个函数可以等待并将线程设置为可提醒状态--------- SleepEx(),WaitForSingleObjectEx(),WaitForM原创 2011-07-11 16:28:55 · 6735 阅读 · 2 评论 -
I/O完成端口
I/O完成端口背后的理论是并发运行的线程的数量必须有一个上限。看一段代码:/ 异步方式调用.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;PTP_WOR原创 2011-07-25 20:53:18 · 795 阅读 · 0 评论