Windows程学设计
文章平均质量分 68
MessCodes
勿在浮沙筑高台,踏踏实实的走。
展开
-
Windows 程序设计基础
常见Windows对象的句柄有:Windows对象 相关句柄设备环境 HDC窗口 HWND菜单 HMENU光标 HCURSOR画笔 HPEN画原创 2012-12-22 20:04:12 · 1323 阅读 · 0 评论 -
何为内核对象
转自:点击打开链接内核对象如:访问令牌对象,事件对象,文件对象,文件映射对象,I/O完成端口对象,作业对象,邮件槽对象,互斥量对象,管道对象,进程对象,信号量对象,线程对象,可等待的计时器对象以及线程池工厂对象。这些对象通过不同名称的函数来创建。函数的名称并非肯定与操作系统内核级别上使用的对象类型对应。每个内核对象都只是一个内存块,它由操作系统内核分配,并只能由转载 2013-06-21 18:01:21 · 895 阅读 · 0 评论 -
Windows多线程程序设计之线程同步分析(结合互斥对象)(中)
接上篇....先来看看代码,如下:MultiThread4.cpp#include #include using namespace std ;DWORD WINAPI ThreadProc1(LPVOID lpParameter) ;DWORD WINAPI ThreadProc2(LPVOID lpParameter) ;int index ;int ticket原创 2013-06-23 14:40:45 · 1162 阅读 · 0 评论 -
Windows多线程程序设计之线程同步分析(结合互斥对象)(下)
本篇中,我将对命名互斥对象进行实例讲解,代码如下:#include #include using namespace std ;DWORD WINAPI ThreadProc1(LPVOID lpParameter) ;DWORD WINAPI ThreadProc2(LPVOID lpParameter) ;int index ;int tickets = 100 ;HA原创 2013-06-23 15:02:20 · 1135 阅读 · 0 评论 -
Windows多线程程序设计之线程同步分析(结合互斥对象)(上)
Windows中的多线程程序设计一直是所有编程人员感到困难的一个地方,主要是在Windows多线程程序设计中,往往要考虑很多的东西,线程启用的多少,线程之间的同步问题等等... 这里我将将我学习过程中碰到的问题总结在此,如果有遇到相同困惑的人也能够尽快的明白过来。MultiThread1.cpp#include #include using namespace s原创 2013-06-23 13:16:54 · 1773 阅读 · 0 评论 -
Windows多线程程序设计之线程同步分析(结合事件对象)(上)
声明: 关于这几篇《Windows多线程程序设计之线程同步分析(结合xx对象)》的博文中的程序, 大家最好能在一台单核CPU中进行测试, 本人使用的双核CPU在测试这些程序的过程中出现了各种各样的不同的问题, 但并不影响我们对多线程程序实现原理的理解, 出现的问题, 由于本人能力有限, 并没能给出相关的解释, 所以也就没有将问题写出来, 希望日后我能够找出这些问题的原因, 此系列的文章仅供参考,原创 2013-06-25 19:04:54 · 1275 阅读 · 0 评论 -
Windows多线程程序设计之线程同步分析(结合事件对象)(下)
本篇介绍命名的事件对象, 命名的事件对象的功能和原理其实和命名的互斥对象的功能和原理差不错, 所以在此篇中就不在进行详细的说明了, 如有疑问请看我的《Windows多线程程序设计之线程同步分析(结合互斥对象)(下)》连接地址:点击打开链接, 在这里我只给出相应的代码,如下:#include #include using namespace std ;DWORD WINAPI原创 2013-06-26 22:44:26 · 1143 阅读 · 0 评论 -
Windows程序进程中内核对象句柄表
转自:点击打开链接一个进程在初始化时,系统将为它分配一个句柄表。这个句柄表仅供内核对象使用,不适用于用户对象或GDI对象。创建一个进程首次初始化的时候,其句柄表为空。当进程内的一个线程调用一个会创建内核对象的函数时,内核将为这个对象分配并初始化一个内存块。然后,内核扫描进程的句柄表,查找一个空白的记录项,并对其进行初始化。具体就是指针成员会被设置成内核对转载 2013-06-27 20:16:02 · 1976 阅读 · 0 评论 -
堆、栈和本地堆
转自:点击打开链接堆和栈站在数据结构的方面来说与堆栈是一样的,在内存方面来说,它们为内存的不同的区域,它们都是连续的内存空间,在分配和销毁空间时都满足后进先出的特点。拿一个应用程序来说,堆中保存全局变量,栈中保存局部变量,在一个应用程序开始执行时,堆的空间就定了,栈是在代码段中的,在这段空间中,除去代码占用的空间,其余的空间会分配给栈,说堆时要考虑操作系统,不同的操作系统堆转载 2013-06-27 18:12:38 · 1305 阅读 · 0 评论 -
内核对象句柄表
转自:点击打开链接一、什么是内核对象 在Windows中,为了简化对资源的访问,统一采用HANDLE来表示各种各样的资源(如内存块、映射文件、Mutex、Semophore等等)在内存中的存放方式(一种数据结构),我们称之为对象。该数据结构中存放的是要访问的资源的相关信息,包括实际资源内容在内存中的地址、该数据结构(对象)引用计数以及安全属性等等。凡是在函数参数列表转载 2013-06-27 21:02:30 · 1649 阅读 · 0 评论 -
一句话提升进程权限
RtlAdjustPrivilege(SE_DEBUG_PRIVILEGE,1,0,NULL); 这个函数封装在NtDll.dll中(在所有DLL加载之前加载),被微软严格保密,就是说你在MSDN上查不到关于他的任何信息。.常量 SE_BACKUP_PRIVILEGE, "17", 公开.常量 SE_RESTORE_PRIVILEGE, "18", 公开.常量 SE_S转载 2013-07-02 23:04:21 · 1377 阅读 · 0 评论 -
Windows平台下的多线程编程
转自:点击打开链接Win32 API是Windows操作系统内核与应用程序之间的界面,它将内核提供的功能进行函数包装,应用程序通过调用相关函数而获得相应的系统功能。为了向应用程序提供多线程功能,Win32 API函数集中提供了一些处理多线程程序的函数集。直接用Win32 API进行程序设计具有很多优点: 基于Win32的应用程序执行代码小,运行效率高,但是它要求程序员编写的转载 2013-11-10 23:15:12 · 1222 阅读 · 0 评论 -
临界区结构(CRITICAL_SECTION)的使用
转自:点击打开链接CRITICAL_SECTION cs;InitializeCriticalSection(&cs);EnterCriticalSection(&cs);在这时,线程被认为「拥有」临界区域对象。两个线程不可以同时拥有同一个临界区域对象,因此,如果一个线程进入了临界区域,那么下一个使用同一临界区域对象呼叫EnterCriticalSection的线程将在函数转载 2013-06-19 22:28:54 · 1610 阅读 · 0 评论 -
Win32 API之SendMessage与PostMessage
转自:点击打开链接Win32 API消息函数:SendMessage(发送消息)函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程 序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。函数原型:LRESULT SendMessage( HWND hWn转载 2013-06-08 11:35:26 · 5726 阅读 · 0 评论 -
MFC命令消息路由 ------ (图)
原创 2013-03-03 15:41:56 · 827 阅读 · 0 评论 -
消息映射和命令传递
说到消息,在MFC中,“最熟悉的神秘”可算是消息映射,那是我们刚开始接触MFC时就要面对的东西。有过SDK编程经验的朋友转到MFC编程的时候,一下子觉得什么都变了样。特别是窗口消息及对消息的处理跟以前相比,更是风马牛不相及的。如文档不是窗口,是怎样响应命令消息的呢?初次用MFC编程,我们只会用MFC ClassWizard为我们做大量的东西,最主要的是添加消息响应。记忆中,如果是自已添加消息响转载 2013-03-02 10:56:58 · 1256 阅读 · 0 评论 -
ASSERT_VALID和ASSERT宏分析
这个宏都是MFC的调试宏. ASSERT_VALID宏用来在运行时检查一个对象的内部合法性,比如说现在有一个学生对象,我们知道每个学生的年龄一定大于零,若年龄小于零,则该学生对象肯定有问题。事实上,ASSERT_VALID宏就是转化为对象的成员函数AssertValid()的调用,只是这种方法更安全。它的参数是一个对象指针,通过这个指针来调用它的AssertValid()成员函数。转载 2013-03-17 20:04:48 · 1365 阅读 · 0 评论 -
VC++ 得到系统特殊文件夹路径
转自:点击打开链接 对Windows程序来说,得到系统特殊文件夹路径是个非常实用的功能。比如要执行一些系统程序像cmd.exe、mspaint.exe、ping.exe时最好加上绝对路径(通常为C:\WINDOWS\system32),否则有可能会出现找不到指定文件的错误。还有要创建桌面快捷方式、启动菜单快捷方式等等也须要使用系统特殊文件夹路径。 在批处理中转载 2013-04-05 11:33:14 · 962 阅读 · 0 评论 -
MFC中消息响应函数定义及消息映射宏定义参考
MFC中消息映射定义在源文件中(即.cpp)文件中,找到如下代码处,向其中添加消息映射的相关代码,什么样的消息用什么样的消息映射宏请参考后面的消息映射宏BEGIN_MESSAGE_MAP(CMFC_PR008View, CView) //{{AFX_MSG_MAP(CMFC_PR008View) ON_WM_CREATE() //}}AFX_MSG_MAP // Standard原创 2013-04-06 13:48:46 · 4391 阅读 · 0 评论 -
各种消息下wParam及lParam值的含义
01、WM_PAINT消息LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高 02、滚动条WM_VSCROLL或WM_HSCROLL消息LOWORD(wParam)指出了鼠标对滚动条的操作。比如上、下、左、右、翻页、移动等。 03、击键消息,有WM_SYSKEYDOWN、WM_SYSKEYUP、WM_KEYUP、WM_KEYDOWNwPa原创 2013-04-20 14:57:28 · 13494 阅读 · 3 评论 -
木马编写小技巧
转自:点击打开链接1.锁定鼠标:这个功能很简单只要一个ClipCursor()就可以搞定了看看下面的小程序[cpp] view plaincopyprint?#include #include int main(int argc, char* argv[]) { printf("\n别转载 2013-04-19 17:47:51 · 867 阅读 · 0 评论 -
系统消息 -- 键鼠消息
转自:点击打开链接鼠标消息在窗口显示区域鼠标消息WM_MOUSEMOVE当鼠标在窗口的显示区域移动时WM_LBUTTONDOWN按下鼠标左键WM_LBUTTONUP释放鼠标左键WM_LBUTTONDBLCLK转载 2013-06-14 20:19:40 · 889 阅读 · 0 评论 -
Windows 应用程序交互过程
转自:点击打开链接应用程序Windows的应用程序一般包含窗口(Window),它主要为用户提供一种可视化的交互方式,窗口是由线程(Thread)创建的.Windows系统通过消息机制来管理交互,消息(Message)被发送,保存,处理,一个线程会维护自己的一套消息队列(Message Queue),在发生输入事件之后,Windows将事件转换为一个「消息」并将消息放入转载 2013-06-14 20:10:55 · 1104 阅读 · 0 评论 -
Win32 窗体开发主要流程
转自:点击打开链接窗体设计窗体设计和消息循环设计流图: 代码示例://设计窗口 WNDCLASS wndclass; wndclass.cbClsExtra=0; wndclass.cbWndExtra=0; wndclass.hbrBackground=(HBRUSH)GetStockObject(WHI转载 2013-06-14 20:12:47 · 972 阅读 · 0 评论 -
窗体
转自:点击打开链接 三个角度窗口含义从应用程序开发员的角度窗口就是图形用户界面句柄,以该句柄作为系统API的参数,就可以对窗口进行各种操作从MFC程序员角度窗口就是一个CWnd对象从操作系统角度窗口是一块普通内存块.该内存中保存了一个数据结构的信息(WNDCLASS).操作系统利用这个数据结构维护窗口状态窗口类型可重叠窗口这种窗口是有标题转载 2013-06-14 20:15:17 · 913 阅读 · 0 评论 -
系统消息
转自:点击打开链接Windows消息分布消息范围说 明0 ~ WM_USER – 1系统消息WM_USER ~ 0x7FFF自定义窗口类整数消息WM_APP ~ 0xBFFF应用程序自定义消息转载 2013-06-14 20:17:03 · 943 阅读 · 0 评论 -
MFC界面编程技术汇总
本篇内容均收集自网络,这些文章的内容都是本人在编写程序中曾经碰到过的问题,虽然这些文章不是直接的告诉了我怎么写才正确,但是这些文章给了我很多的启示。注:本篇里的技术文章将持续更新。 添加RichEdit控件后运行不显示对话框点击打开链接http://blog.163.com/lvlijuan001@126/blog/static/7799719820100291025127原创 2013-12-18 00:39:04 · 1451 阅读 · 0 评论