<?xml version="1.0" encoding="gbk"?>
<rss version="2.0">
  <channel>
    <title>曲径通幽论坛 - 『Windows System Programming』</title>
    <link>http://www.groad.net/bbs/forum.php?mod=forumdisplay&amp;fid=108</link>
    <description>Latest 20 threads of 『Windows System Programming』</description>
    <copyright>Copyright(C) 曲径通幽论坛</copyright>
    <generator>Discuz! Board by Comsenz Inc.</generator>
    <lastBuildDate>Fri, 10 Apr 2026 20:18:57 +0000</lastBuildDate>
    <ttl>60</ttl>
    <image>
      <url>http://www.groad.net/bbs/static/image/common/logo_88_31.gif</url>
      <title>曲径通幽论坛</title>
      <link>http://www.groad.net/bbs/</link>
    </image>
    <item>
      <title>[异常处理] try 与 except</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=8259</link>
      <description><![CDATA[在遇到如“对未正确初始化或计算过的指针解引用”，“数组下标超过边界”，“除数为 0，计算溢出”这些错误（异常）时，我们需要从错误中恢复，而不是终止程序。

SEH （结构化异常处理）使用 \&quot;try\&quot; 与 \&quot;except\&quot; 块来捕捉与处理产生的异常，代码框架如下：

注意：_ ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Wed, 22 Jan 2014 04:04:48 +0000</pubDate>
    </item>
    <item>
      <title>CRITICAL_SECTION 结构</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=7902</link>
      <description><![CDATA[CRITICAL_SECTION 是一个临界区结构，定义在 WinBase.h 中：


又在 WinNT.h 中有对 RTL_CRITICAL_SECTION 的定义：

[mw_shl_code=cpp,true]typedef struct _RTL_CRITICAL_SECTIO ...]]></description>
      <category>『Windows System Programming』</category>
      <author>easy</author>
      <pubDate>Wed, 17 Jul 2013 09:57:11 +0000</pubDate>
    </item>
    <item>
      <title>注册表</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=7730</link>
      <description><![CDATA[注册表用来存储系统和应用程序的配置数据。很多系统和应用程序重要的配置信息都存储在注册表中。注册表是一种树形结构数据库，树的每个节点称为键(key)，每个键还可以包含若干子键，键可以存储数据，这些数据称为“键值”。一个键不论是否有子键，都可以有键值。一个键 ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Mon, 15 Apr 2013 09:44:17 +0000</pubDate>
    </item>
    <item>
      <title>内存分配方式关系与比较</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6357</link>
      <description><![CDATA[C 语言标准定义了一系列的内存管理函数，如 malloc(), memcpy(), free() 等。Windows 系统也支持标准 C 。在应用程序中，也可以使用标准 C 内存管理函数来对内存分配释放，操作管理。

ctrdll.dll (crt : c run time) 中包括了各种标准 C 库函数的实现，使用标准 C 库函 ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Fri, 02 Mar 2012 02:33:28 +0000</pubDate>
    </item>
    <item>
      <title>虚拟地址空间内存页的 3 种状态</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6324</link>
      <description><![CDATA[虚拟地址空间内存页有 3 种状态，它们分别是：空闲的(free)，保留的(reserved)，提交的(committed) 。大多数情况下，一个页的大小是 4KB 。

空闲的
对于空闲页面，由于页面还未被分配，因此进程不能访问。对这属于种页面的虚拟内存地址访问都将引起访问异常。

保留的
 ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Wed, 29 Feb 2012 03:45:35 +0000</pubDate>
    </item>
    <item>
      <title>堆管理(何时用堆分配)</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6196</link>
      <description><![CDATA[（本文转载） 设计
程序
 

 
2 对动态创建堆的需求
 

 

 


 

 

 
安全]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Sat, 18 Feb 2012 08:44:45 +0000</pubDate>
    </item>
    <item>
      <title>内存映射文件(Mapping File)</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6185</link>
      <description><![CDATA[文件映射 (Mapping) 是一种就将文件内容映射到进程的虚拟地址空间技术。

视图 (View) 是一段虚拟地址空间也是一段内存，进程可通过视图来存取文件的内容，操作试图的方法正是通过指针来进行。

使用文件映射后，读写文件就如同读写内存一样简单了。使用文件映射至少有  ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Fri, 17 Feb 2012 05:24:53 +0000</pubDate>
    </item>
    <item>
      <title>变量常用前缀</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=6167</link>
      <description><![CDATA[b    BOOL类型的逻辑变量，等价于int.
by    unsigned char类型，占用一个字节。
c    char类型
dw    DWORD类型，等价于unsigned long
fn    函数
h    用来引用某种对象的句柄
i    int类型
l    long类型
lp    long类型的指针
n    int类型
p    指针
s    字符串
s ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Thu, 16 Feb 2012 03:19:49 +0000</pubDate>
    </item>
    <item>
      <title>常用 Windows 数据类型</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=5917</link>
      <description><![CDATA[Windows 数据类型命名规律：

指针类型的命名方式一般是在其指向的数据类型面前加上 LP 或 P 。

各种句柄数据类型命名方式一般在对象面前加上 H 。

无符号类型一般以 U 开头。

在 VS 中查看某个 Windows 对象类型时，可以用鼠标指向该类型，或者点击它然后在右键 ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 10 Jan 2012 08:31:04 +0000</pubDate>
    </item>
    <item>
      <title>什么是句柄</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=5914</link>
      <description><![CDATA[句柄 (Handle) 是 Windows 标识，由应用程序建立或使用的对象所使用的一个唯一的整数值(通常为 32 位)。Windows 使用各种各样的句柄来标识注入应用程序实例，窗口，图标，菜单，输出设备，文件等对象。它有点类似于 Unix/Linux 中的文件标识符。

程序通过调用 Windows  ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 10 Jan 2012 07:41:45 +0000</pubDate>
    </item>
    <item>
      <title>WinMain() 函数</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=5913</link>
      <description><![CDATA[WinMain() 函数是 Windows 桌面程序的程序入口函数，相当于 C 语言中的 main() 函数，其定义如下：


第一个参数 ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 10 Jan 2012 07:28:52 +0000</pubDate>
    </item>
    <item>
      <title>关于 Windows7 中的文件的 ”访问时间“无效的释疑</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=4765</link>
      <description><![CDATA[在 Windows7 中，如果平时比较留心的话，可能会发现当右键查看一个文件的时间戳时，会注意到 ”文件访问时间“ 总是和 ”文件创建时间相同“ ，尽管你多次打开过该文件，但”文件的访问时间“是不会改变的。

实际上，访问时间的变换是通过 LastAccessTime 功能实现，如 ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Mon, 19 Sep 2011 03:46:03 +0000</pubDate>
    </item>
    <item>
      <title>使用重叠结构获得文件位置</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=4709</link>
      <description><![CDATA[可以使用 函数直接设置文件指针。但 Windows 也提供了另一种指定读写文件位置的方法。

 ReadFile() 或 WriteFile() 的最后一个参数是一个重叠结构地址。重叠结构定义如下：
[mw_shl_code=cpp,true]
typedef struct _OVERLAPPED {
  ULONG_PTR Internal;
  ULONG_PTR In ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 13 Sep 2011 08:16:41 +0000</pubDate>
    </item>
    <item>
      <title>_tprintf(), printf()，wprintf() 与控制字符 %s 和 %S(Unicoe与GB2312))</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=4699</link>
      <description><![CDATA[_tprintf() 是 printf() 和 wprintf() 的通用类型；如果定义了 _unicode，那么 _tprintf() 就会转换为 wprintf()，否则为 printf() 。

在这 3 个函数中有两个字符串控制输出字符为 %s 和 %S 。使用它们时，有如下区别：

%s
当使用 printf() 时，按照单字符格式输出字 ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Mon, 12 Sep 2011 04:08:14 +0000</pubDate>
    </item>
    <item>
      <title>使用通用类型 _stprintf_s() 与 sizeof 时发生的溢出</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=4692</link>
      <description><![CDATA[首先知道一点，sizeof 用来计算数组时，是计算数组字节的，而不是数组的元素个数。这一点，在使用 sizeof 来计算通常的 char 类型数组时，所得到的值既表示数组的元素个数又表示数组的整个大小。但 sizeof 用来计算 Unicode 或者说是 wchar_t 这类型的数组时要小心，否 ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Sun, 11 Sep 2011 03:13:20 +0000</pubDate>
    </item>
    <item>
      <title>CONIN$ 和 CONOUT$</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=4651</link>
      <description><![CDATA[CONIN$ 和 CONOUT$ 是系统保留的两个路径名，它们用来做控制台的输入(键盘)缓冲区和活动的控制台屏幕输出缓冲区。

最初时，标准输入，输出和错误都是支配到控制台上的。

直接使用控制台而撇开对这些标准设备的任何重定向操作是可能的，这时只需要使用由 CreateFile 打 ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Fri, 09 Sep 2011 01:21:28 +0000</pubDate>
    </item>
    <item>
      <title>_ftprintf(), fwprintf() 等打印中文信息</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=4622</link>
      <description><![CDATA[printf() 和 fprintf() 两个函数无须特别设置便可以直接在命令行上打印出中文信息。

但使用 _ftprintf() 和 fwprintf() 函数默认不打印出中文信息时，需要在程序中如下设置：

1. 先包含 #include  头文件。

2. 在程序开始时使用函数 _tsetlocale(LC_CTYPE, (LPCWSTR) ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Wed, 07 Sep 2011 07:17:23 +0000</pubDate>
    </item>
    <item>
      <title>使用 MultiByteToWideChar() 与 WideCharToMultiByte() 转换 UTF-8 为 GB2312</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=4610</link>
      <description><![CDATA[在开始转换之前，先在 Windows 下用 UE 编辑一个纯文本文件，分别另存为 “UTF-8” 和 “UTF-8 无 BOM” 两种格式。

UTF-8 默认是有 BOM (Byte Order Mark，标识编码标记)，在 Windows 里，这个 BOM 为 3 个字节，依次为 ”0xEF，0xBB， 0xBF“ 。顺便说一下，在 Windo ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 06 Sep 2011 10:31:19 +0000</pubDate>
    </item>
    <item>
      <title>代码页(Code Page)</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=4609</link>
      <description><![CDATA[现在大部分的应用程序主要使用 Unicode (使用 UTF-16 编码)来处理字符数据。然而，也还有许多旧的程序仍然使用基于代码页(code pages)的字符集。实际上，新的应用程序有时也不得不使用代码页，其可能原因可能出自于如下几点：

1. 能够和旧有的程序正常打交道

2. 需要 ...]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 06 Sep 2011 06:40:36 +0000</pubDate>
    </item>
    <item>
      <title>Visual studio 带命令行参数调试设置</title>
      <link>http://www.groad.net/bbs/forum.php?mod=viewthread&amp;tid=4608</link>
      <description><![CDATA[对于 Visual Sutido 2010：
项目 --&gt; 项目属性 --&gt; 调试 --&gt; 命令参数

如下图所示：]]></description>
      <category>『Windows System Programming』</category>
      <author>beyes</author>
      <pubDate>Tue, 06 Sep 2011 02:54:25 +0000</pubDate>
    </item>
  </channel>
</rss>