windows程序设计
你若安好178
这个作者很懒,什么都没留下…
展开
-
Unicode字符集和多字节字符集关系
在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset)。 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8 bits表示一个字符,可以表示256个字符,主转载 2014-01-01 17:26:29 · 542 阅读 · 0 评论 -
windows核心编程第四章
#include "..\CmnHdr.h" /* See Appendix A. */#include #include #include #include #include #include "Toolhelp.h"#include "Resource.h"///////////////////////////////////////////////////////原创 2014-12-07 21:43:19 · 887 阅读 · 0 评论 -
DumpEnvStrings.cpp(获取环境变量)
#include #include #include // 使用了StringCbCopyN等安全字符串处理函数void DumpEnvStrings(){ // 结尾有两个'\0',一个是最后一个环境变量的结尾,另一个是整个块的结尾 PTSTR pszEnvBlock = GetEnvironmentStrings(); TCHAR szName[MAX_PATH]; TC原创 2014-12-07 09:59:33 · 786 阅读 · 0 评论 -
利用专有命名空间实现单一实例源代码注释
要实现单一实例有三种 一种是对象句柄继承 一种是专有命名 另外一种是复制对象句柄今天来看看专有命名空间void CheckInstances() { // 创建边界描述符 g_hBoundary = CreateBoundaryDescriptor(g_szBoundary, 0); //g_szboundary是一个自定义字符串 // 创原创 2014-12-06 12:37:05 · 791 阅读 · 0 评论 -
Windows安全描述符SECURITY_DESCRIPTOR阅读注释
安全对象Securable Object是拥有SD的Windows的对象。所有的被命名的Windows的对象都是安全对象。一些没有命名的对象是安全对象,如:进程和线程,也有安全描述符SD。安全对象Securable Object是拥有SD的Windows的对象。在 Windows系统中,其是用一个安全描述符(Security Descriptors)的结构来保存其权限的设置信息,简称为SD原创 2014-12-06 12:10:59 · 6625 阅读 · 1 评论 -
地址空间扩展
虽然Windows的32位版本可以支持多达128GB物理内存,但每个32位用户进程在默认情况下只有2GB虚拟地址空间(在Boot.ini中使用/3GB和/USERVA开关时,此限制值可配置为3GB)。注意:当创建一个进程时,操作系统会为该进程分配一个4GB大小的虚拟进程地址空间。之所以是4GB,是因为在32位的操作系统中,一个指针长度是4字节,而转载 2014-12-18 16:04:13 · 1479 阅读 · 0 评论 -
MFC 消息映射机制剖析
MFC的类非常多,继承关系复杂,如何完成MFC巨大的类层次之间消息的传递是一个技术难点,最简单的就是采用虚函数机制,每继承一个类,就覆盖父类的函数,但问题来了,MFC有上百个类,如果使用虚函数,那么每个派生类都会生成一个巨大的虚函数表,效率低下,内存使用率高,违背了微软设计MFC的准则。微软采用了所谓的消息映射机制,来完成不同对象之间消息的传递,本文就MFC9.0源码进行分析,大致讲解MFC的消息转载 2014-05-03 02:04:05 · 759 阅读 · 0 评论 -
MM_Anisotropic MM_ISOTROPIC
getdevicecaps就是得到一英寸代表及像素,也就是1440逻辑尺寸代表一英寸ptclient这点是设备空间的坐标点,所以转换成逻辑坐标x从760变成1万多原创 2014-01-24 22:02:12 · 1507 阅读 · 0 评论 -
CreateCompatibleDC
函数功能:该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。函数原型:HDC CreateCompatibleDC(HDC hdc);参数:hdc:现有设备上下文环境的句柄,如果该句柄为NULL,该函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境。返回值:如果成功,则返回内存设备上下文环境的句柄;如果失败,则返回值为NULL。 CreateCompatib转载 2014-01-21 16:05:49 · 569 阅读 · 0 评论 -
__cdecl __stdcall区别
最大的区别就是__cdecl是由调用函数者释放堆栈,而__stdcall由被调用者释放。但是我们在调用任一种函数时,都没有进行显示的释放堆栈工作。这个工作由编译器完成,它帮我们生成了这个中间要使用的代码。 以下系转载: 在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用r转载 2014-01-05 02:26:14 · 499 阅读 · 0 评论