Windows 程序设计
秘境之眼
业精于勤,荒于嬉;行成于思,毁于随。
展开
-
Windows终止进程
进程终止的4种方法:主线程从入口函数返回; 进程中有个 线程调用ExitProcess函数; 进程中所有线程结束; 其他进程中的线程调用了TerminateProcess函数。在此,通过TerminateProcess函数来终止一个个其他进程,我们需要先获取的需要终止进程的句柄,可以通过OpenProcess来获取这个 进程的访问权限;...原创 2021-07-13 21:25:12 · 914 阅读 · 0 评论 -
Windows坐标系统
坐标映射方式是设备环境中的一个重要属性,默认值为MM_TEXT,即左上角为原点,右方为x轴正方向,下方为y轴正方向,这种坐标系使用的单位是像素,其好处是窗口中的每一点的坐标不会因为窗口大小而改变。映射方法 逻辑单位 x和y轴方向 MM_TEXT(默认方式) 像素 x右,y下 MM_LOMETRIC 0.1mm x右,y上 MM_HIMETRIC ...原创 2019-04-25 10:19:56 · 618 阅读 · 0 评论 -
Windows框架
#include<Windows.h>#include<tchar.h>#include"resource.h"//全局变量LPSTR g_MainFrame = "主框架";LPSTR g_ClientFrame = "客户区框架";LPSTR g_ChildFrame[] = { "子框架1","子框架2" };LRESULT CALLBACK ...原创 2019-04-29 13:05:10 · 573 阅读 · 0 评论 -
Win32 多文档多视图
#include<Windows.h>#include<tchar.h>#include"resource.h"//全局变量LPSTR g_MainFrame = "主框架";LPSTR g_ClientFrame = "客户区框架";LPSTR g_ChildFrame[] = { "子框架1","子框架2" };//主窗口和子窗口回调函数,本程序子...原创 2019-05-02 17:31:25 · 467 阅读 · 0 评论 -
线程同步-事件内核对象
事件内核对象:两种状态,受信状态与未受信状态,3个成员; nUsageCount(使用计数); bManualReset(是否人工重置); bSignagled(是否受信)。 基本函数: HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes,BOOL 不ManualReset,BOOL 不I你他俩State,LPCW...原创 2019-03-30 17:16:28 · 178 阅读 · 0 评论 -
线程同步-互锁函数
互锁函数: LONG InterlockedIncrement(LONG volatile* Addend):递增指定32位变量,增量位1,可以阻止其他线程同时使用此变量; LONG InterlockedDecrement(LONG volatile* Addend):递减指定的32变量,减小量位1; #include<windows.h>#include<iost...原创 2019-03-30 14:55:39 · 513 阅读 · 0 评论 -
多线程-线程同步
CreateThread函数与_beginthreadex 函数的联合使用: 为了多线程同步的需要,使每个线程必须具有唯一的状态,CreateThread还不能灵活使用,需要使用C/C++运行期库; CreateThread函数参数与_beginthreadex函数对应的,只是类型不同,需要强制转换。 每个线程都有自己的内核对象,包含了该线程的属性信息;#include<win...原创 2019-03-30 14:11:09 · 179 阅读 · 0 评论 -
Win32程序执行单元-多线程
多线程:主线程在运行过程中,可以创建新的线程,这些线程可以共享进程的资源,如全局变量,句柄等; 线程函数定义:DWORD WINAPI ThreadProcess(LPVOID lpParam); `WINAPI 宏名,在windef.h有声明 #define WINAPI __stdcall;__stdcall为新标准C++/C函数调用方法,采用自动清栈; 凡是由系统调用的函数必须定义为...原创 2019-03-30 12:51:18 · 145 阅读 · 0 评论 -
Windows 程序设计技巧
#include<iostream>#include<windows.h>using namespace std;int main(){ int nSelect = ::MessageBox(NULL,"windows 程序设计","测试",MB_OKCANCEL); if (nSelect == IDOK) { printf("OK!"); }...原创 2019-03-13 16:39:33 · 194 阅读 · 0 评论 -
进程的控制——获取系统进程信息
获取系统进程ToolHelp函数; CreateToolhelp32Snapshot函数获取当前系统内执行的进程拍快照(Snapshot),即获得进程列表; Process32First函数和Process32Next函数遍历列表; 快照头文件:#include<tlhelp32.h>#include<Windows.h>#include<tlhelp...原创 2019-03-16 12:27:04 · 929 阅读 · 0 评论 -
CreateProcess
CreatePress:创建一个新的进程和该进程的主线程; BOOL CreateProcess ( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUT...原创 2019-03-16 10:25:19 · 933 阅读 · 0 评论 -
定义变量类型
typedefunsigned long DWORD;typedef int BOOL;typedef unsigned char BYTE;typedef unsigned short WORD;typedef float FLOAT;typedef void far *LPVOID;typedef int INT;typedef unsigned int UINT;变量的...原创 2019-03-15 14:16:07 · 489 阅读 · 0 评论 -
STARTUOINFO
typedef struct{ DWORD cb={sizeof(STARTUPINFO)}; LPSTR lpReserved; LPSTR lpDesktop; LPSTR lpTitle; DWORD dwX; DWORD dwY; DWORD dwXSize;...原创 2019-03-15 14:04:09 · 212 阅读 · 0 评论 -
进程与线程
进程:运行程序的实例; 一个进程,他拥有自己的虚拟地址空间、代码、数据和其他系统资源。一个进程包含一个或多个在此进程内运行的线程。 线程:线程是进程内执行代码的独立实体,进程不活越,线程活跃。1.应用程序必须有一个入口函数;2.应用函数的启动过程: 1)先调用C/C++运行期启动函数,将所有全局的或静态的C++对象创建,即执行这些对象的构造函数。 2)执行入口函数;创...原创 2019-03-15 13:50:41 · 155 阅读 · 0 评论 -
Win32 程序运行原理
处理器的3工作方式:实模式,保护模式,虚拟86模式。CPU的主要工作在保护模式下。Windows操作系统就是运行在保护模式下的; Windows多任务的实现:任务间的切换提供了良好条件,多任务隔离,每个任务都有独立的地址空间。 通过进程来实现任务,每个进程被赋予自己私有的地址空间。 程序访问内存,为防止修改系统数据,Windows使用两种访问模式,即内核模式和用户模式。内核对象:用户模式下...原创 2019-03-15 13:10:13 · 387 阅读 · 0 评论