
windows程序设计
文章平均质量分 93
milanleon
这个作者很懒,什么都没留下…
展开
-
GetFileTime获得文件的时间信息
GetFileTime函数用来获得一个文件或目录的创建的时间、最后访问的时间以及最后修改的时间:1 BOOL WINAPI GetFileTime(2 __in HANDLE hFile, //文件或目录句柄3 __out_opt LPFILETIME lpCreationTime, //返回的创建的日期和时间信息4 __out_opt LPFILETIM转载 2014-01-10 16:06:32 · 5490 阅读 · 0 评论 -
Windows异步IO
1、同步IO时,发出IO请求的线程会被挂起。而异步IO时发出请求的线程不会被挂起,而是可以继续执行。异步IO请求传给了设备驱动程序,被加入到驱动程序的请求队列中,驱动程序负责实际的IO操作。当设备驱动程序完成了对队列中IO请求的处理,无论成功与否都必须通知应用程序。转载 2014-07-17 08:50:05 · 1630 阅读 · 0 评论 -
windows文件及注册表编程
1、CFile文件操作类转载 2014-06-26 11:10:07 · 1560 阅读 · 0 评论 -
Globalalloc/LocalAlloc与HeapAlloc、malloc与new
1、Globalalloc与HeapAllocGlobalalloc是为了与Win16兼容才保留的,在Win32下不要使用。Win16下分配内存可以有两种,全局的和局部的,例如GlobalAlloc和LocalAlloc,但在Win32的时代这些函数已经被废弃了。在Win32中所有的进程所使用的内存区域是相互隔离的,每个进程都拥有自己的地址空间。而且系统使用了页面交换功能,就是利用磁盘空间来模转载 2014-07-17 08:50:27 · 1230 阅读 · 0 评论 -
利用FindFirstFile和FindNextFile查找文件或遍历文件夹
FindFirstFile()根据文件名查找文件,函数执行成功返回一个搜索句柄,出错则返回INVALID_HANDLE_VALUE常数,查找结束应该用FindClose函数关闭搜索句柄。函数原型:HANDLE WINAPI FindFirstFile( _In_ LPCTSTR lpFileName, _Out_ LPWIN32_FIND_DATA lpFindFileDat转载 2014-01-13 15:37:06 · 12644 阅读 · 1 评论 -
Windows文件、目录操作函数
1、文件操作函数 CreateFile();//创建或打开文件 ReadFile();//从文件读 WriteFile();//向文件写 SetFilePointer();//设置文件指针 SetEndOfFile();//将指定文件的物理文件大小设置为当前文件指针的位置,其主要用来截取或扩展文件。 CopyFile();//复制文件 ...转载 2014-01-10 17:44:35 · 4054 阅读 · 0 评论 -
Windows线程池
1、Windows提供了一个线程池机制来简化线程的创建、销毁以及日常管理转载 2014-07-17 08:46:20 · 4698 阅读 · 0 评论 -
Windows线程
1、线程概述转载 2014-07-17 08:43:26 · 970 阅读 · 0 评论 -
windows动态链接库
1、动态链接库是一些独立的文件,其中包含能被可执行文件或其它动态链接库调用的函数。静态库:扩展名.lib,程序编译链接时,链接器从库中复制这些函数和数据同其它模块组合,以生成可执行文件。程序运行时不再需要该库文件。动态链接库:通常包含一个引入库文件.lib和DLL文件.dll,引入库文件包含DLL文件导出的函数和变量的符号名。程序编译链接时,链接器只链接引入库文件,不去复制DLL文件中...原创 2014-06-24 13:45:42 · 1215 阅读 · 0 评论 -
Windows线程间同步
1、多线程操作共享数据带来的问题对于一条自增语句 i++,实际上是执行三条汇编指令:①、先将i的值放到寄存器中,②、在寄存器中将i的值加1,③、将寄存器中i的值赋给内存i中。现在如果有两个线程同时执行i++的话,最好的情况就是一个线程执行完①,②,③后,另一个线程再执行①,②,③步。但线程很有可能不是这样顺序执行,这种情况下就可能出现访问计算错误:假设i的初始值为0,线程1执行完②后,线程...原创 2014-07-17 08:45:16 · 1067 阅读 · 0 评论 -
内存映射
创建内存映射分三步:CreateFile打开文件,CreateFileMapping创建内存映射内核对象,MapViewOfFile将内存映射对象映射到当前应用程序的地址空间(即获得内存映射指针)。如果内存映射不与硬盘上的文件相关联的话可以省略第一步,CreateFileMapping第一个参数设为INVALID_HANDLE_VALUE。eg:HANDLE hFile = CreateFil原创 2018-04-17 11:08:37 · 218 阅读 · 0 评论 -
IO完成端口
为了将Windows打造成一个出色的服务器环境,Microsoft开发出了IO完成端口(IOCP:IOCompletionPort)。完成端口背后的理论基础是并发运行的线程数量必须有一个上限,因为太多的线程将会导致系统花费很大的代价在各个线程cpu上下文进行切换。使用并发模型与创建进程相比开销要低很多,但是也需要为每个客户请求创建一个新的线程,这开销仍然很大。通过使用线程池可以使性能有很大的提高,转载 2014-07-17 08:49:06 · 1173 阅读 · 0 评论 -
GetSystemMetrics作用
GetSystemMetrics()可以获得指定系统信息或系统配置信息,如获得当前屏幕分辨率、标准光标的宽度和高度、图标宽度和高度、系统如何安排最小化窗口、以像素为单位计算的菜单选中标记位图的尺寸等。例//获得屏幕分辨率宽和高 g_uiScreenWidth = GetSystemMetrics(SM_CXSCREEN); g_uiScreenHeight = GetSystemM转载 2014-06-18 16:28:21 · 1019 阅读 · 0 评论 -
打开(关闭)进程、文档、网页
功能:对指定文件执行某个操作原型:BOOLShellExecuteEx(LPSHELLEXECUTEINFOlpExecInfo);参数:lpExecInfo一个指向SHELLEXECUTEINFO结构的指针,用来传递和保存应用程序执行相关的信息。返回值:如果函数成功执行就返回TRUE,否则返回 FALSE。可调用GetLastError获取错误信息。备注:...转载 2014-01-13 16:55:45 · 7222 阅读 · 0 评论 -
在Win32中使用MFC库
在SDK程序中使用MFC中的辅助类由于MFC中的辅助类,如CFileDialog,CFileFind,CString等使用起来非常的方便如果用API来完成相应的工作,则需要自己完成大量的重复工作,使用MFC的辅助类可以节省大量的开发时间,具体方法如下:1.加入相应的头文件去掉windows.h,然后在所有的.h文件前加入#include "stdafx.h"#inclu转载 2014-01-14 13:48:52 · 996 阅读 · 0 评论 -
“同步/异步”和“阻塞/非阻塞”
首先来解释同步和异步的概念,这两个概念与消息的通知机制有关。举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理业务了。前者(排队等候)就是同步等待消息,而后者(等待别人通知)就是异步等待消息。在异步消息处理中,等待消息者(在这个例子中就是等待办理业务的人)往往注册一个回调机制,在所等待的事件被触发时由触发机制(在这里是转载 2014-02-07 14:42:39 · 572 阅读 · 0 评论 -
MAKEWORD与MAKELONG
MAKEWORD宏将两个BYTE(unsigned char)型合并成一个WORD(unsigned short)型,语法:WORD MAKEWORD(BYTE bLow, BYTE bHigh );LOBYTE宏取WORD低(8)位,语法:BYTE LOBYTE(WORD wValue);HIBYTE宏取WORD高(8)位,语法:BYTE HIBYTE(WORD wValue原创 2014-01-15 10:24:38 · 3469 阅读 · 0 评论 -
使用GetModuleFileName函数获取当前程序所在目录
GetModuleFileName() 获取当前进程已加载模块的文件的完整路径,该模块必须由当前进程加载。如果想要获取另一个已加载模块的文件路径,可以使用GetModuleFileNameEx函数。 函数原型:DWORD WINAPI GetModuleFileName( _In_opt_ HMODULE hModule, //应用程序或DLL模块实例句柄,NULL则为获取原创 2014-01-10 11:49:20 · 39070 阅读 · 1 评论 -
Windows进程间通信
1、进程间通信原创 2014-07-17 08:39:52 · 1017 阅读 · 0 评论 -
VC获取系统进程列表、查找进程、关闭进程
PROCESSENTRY32 pe32; pe32.dwSize=sizeof(pe32); HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hProcessSnap==INVALID_HANDLE_VALUE){ MessageBox(L"CreateT转载 2014-06-20 10:53:11 · 5291 阅读 · 0 评论 -
VC++创建的非空项目中自动生成的文件说明
1、stdafx.h:用来生成预编译头文件,原创 2014-09-10 20:51:13 · 746 阅读 · 0 评论 -
Windows进程
1、进程相关转载 2014-06-27 16:22:34 · 1042 阅读 · 0 评论