Win32API
文章平均质量分 76
swartz_lubel
这个作者很懒,什么都没留下…
展开
-
获取进程或线程的ID以及句柄信息
先介绍一下创建线程或进程的时候是可以得到相应的ID以及句柄信息的。BOOL CreateProcess(LPCTSTR lpApplicationName,LPTSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIBUTES lpThreadAttributes,BOOL bInhe原创 2017-03-12 17:45:04 · 4147 阅读 · 0 评论 -
VS2013在Release情况下使用vector有时候会崩溃的一个可能原因
转载请注明出处:http://www.cnblogs.com/darkknightzh/p/5016352.html 参考网址:http://www.cnblogs.com/BryZ/archive/2011/06/21/2085865.htmlhttp://www.cppblog.com/super-/archive/2009/06/18/88006.as转载 2017-09-09 14:31:22 · 1613 阅读 · 0 评论 -
如何在32位程序中突破地址空间限制使用超过4G的内存
众所周知,所有的32位应用程序都有4GB的进程地址空间,因为32位地址最多可以映射4GB的内存(对于虚拟地址空间概念不太熟悉的朋友建议去看一下《Windows核心编程》这本书)。对于Microsoft Windows操作系统,应用程序可以访问2GB的进程地址空间(32位Linux可以访问3GB地址空间),这就是称为用户模式的虚拟地址空间。这2GB的用户模式虚拟地址空间位于4GB地址空间的低一半,而转载 2017-08-22 11:02:54 · 5265 阅读 · 0 评论 -
C++Windows下CONTAINING_RECORD宏的用法和详解
[cpp] view plain copyprint?#include #include int main() { struct ABCD { int a; int b; int c; int d; }; //CONTAINING_RECORD宏转载 2017-07-28 21:26:53 · 1028 阅读 · 0 评论 -
windows服务编写原理(下)
二)对服务的深入讨论之上 上一章其实只是概括性的介绍,下面开始才是真正的细节所在。在进入点函数里面要完成ServiceMain的初始化,准确点说是初始化一个SERVICE_TABLE_ENTRY结构数组,这个结构记录了这个服务程序里面所包含的所有服务的名称和服务的进入点函数,下面是一个SERVICE_TABLE_ENTRY的例子:SERVICE_TABLE_ENTRY servi转载 2017-04-20 10:32:03 · 664 阅读 · 0 评论 -
windows服务编写原理(上)
有那么一类应用程序,是能够为各种用户(包括本地用户和远程用户)所用的,拥有用户授权级进行管理的能力,并且不论用户是否物理的与正在运行该应用程序的计算机相连都能正常执行,这就是所谓的服务了。(一)服务的基础知识Question 1. 什么是服务?它的特征是什么? 在NT/2000中,服务是一类受到操作系统优待的程序。一个服务首先是一个Win32可执行程序,如果要写一个功能完转载 2017-04-20 10:31:25 · 2056 阅读 · 0 评论 -
Windows 服务程序编写
摘要:几乎所有的操作系统在启动的时候都会启动一些不需要与用户交互的进程,这些进程在Windows中就被称作服务。它由服务程序、服务控制程序(SCP,service control program)和服务控制管理器(SCM,service control manager)三个组件构成。本文针对服务程序与服务控制程序的编写进行综合讲述。 关键词:Windows,服务,VC++1转载 2017-04-20 10:29:09 · 2816 阅读 · 0 评论 -
FindWindow和FindWindowEx
函数型:HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);IpClassName :指向一个指定了类名的空结束字符串或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位,必须位于lpClassName的低16位,高位必须为0。如果为NULL,原创 2017-03-12 23:05:36 · 3003 阅读 · 1 评论 -
获取CPU利用率 系统内存和进程内存
示例代码如下#include #include #include using namespace std;__int64 CompareFileTime(FILETIME t1,FILETIME t2){ __int64 a = t1.dwHighDateTime << 32 | t1.dwLowDateTime; __int64 b = t2.dwHighDateTime原创 2017-03-12 21:20:57 · 2159 阅读 · 0 评论 -
WaitForSingleObject
等待函数使一个线程资源进入等待状态,直到制定的内核对象被触发为止。注意,如果线程在调用一个等待函数的时候,相应的内核对象已经出发触发状态,那么线程是不会进入等待状态的。最常用的是WaitForSingleObject:DWORD WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds); 第一个参数hObject用来标识要等待的原创 2017-03-12 20:45:34 · 860 阅读 · 0 评论 -
关键段 互斥量 以及信号量
关键段(主要是用户模式下的线程同步,但是竞争激烈的情况下会进入内核态)一般是EnterCriticalSection和LeaveCriticalScetion配对使用,需要先创建一个CRITICAL_SECTION结构。下面的函数用来进行初始化void InitializerCriticalSection(PCRITICAL_SECTION pcs);当线程不在需要访问共享资源原创 2017-03-12 20:37:15 · 370 阅读 · 0 评论 -
事件内核对象 CreateEvent
事件内核对象是在线程同步时比较常用的内核对象。一个事件内核对象的触发表示一个操作已经完成。有两种类型的事件内核对象:手动重置事件和自动重置事件。当一个手动重置对象被触发的时候,正在等待该事件的所有线程都将变成可调度状态。而当一个自动重置事件被触发时,只有一个正在等待该事件的线程会变成可调度状态。事件内核对象最通常的用途是:让一个线程执行初始化工作,然后触发另一个线程,让他执行剩余的工作原创 2017-03-12 20:11:01 · 1302 阅读 · 0 评论 -
Windows消息机制以及相关API
消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消原创 2017-03-12 18:38:56 · 1977 阅读 · 0 评论 -
windows 和linux 同步api对比
初始化临界区(win)InitializeCriticalSection(RTL_CRITICAL_SECTION &rtl_critial_section) (linux) pthread_mutexattr_init(&(mutex)->attr);pthread_mutexattr_settype(&(mutex)->attr, PTHREAD转载 2017-09-29 09:18:05 · 467 阅读 · 0 评论