Win32 SDK编程
LPWSTR
这个作者很懒,什么都没留下…
展开
-
VC生成不依赖高版本msvcrtXX.dll程序之方法一——完全抛弃CRT库
只使用Win32API,完全抛弃CRT库如果我们的程序只使用C语言基本语法、调用Win32API而不依赖C库的函数(《Windows程序设计》(petzold著)中的代码基本就是如此,因此国外也有人称这类程序是petzold-style),则完全可以抛弃掉msvcrt库,使得最终生成的可执行文件体积接近Win32汇编编写的可执行程序大小。原创 2017-11-16 17:23:20 · 3152 阅读 · 0 评论 -
Visual C++异常处理机制原理与应用(三)——C/C++结构化异常处理之try-except异常处理的使用(上)
在微软的VC++中,C/C++结构化异常处理机制一共包含两部分内容:终止处理程序和异常处理程序,本文主要介绍异常处理程序的相关内容。原创 2017-12-03 21:45:10 · 2237 阅读 · 2 评论 -
Visual C++异常处理机制原理与应用(一)—— C/C++结构化异常处理之try-finally终止处理的使用与原理(上)
异常处理是我们日常编程会不时用到但是却很少深入了解的部分,也是硬件、操作系统、编译器与用户程序需要密切配合才能完成的一个复杂过程。本系列文章主要对Visual C++中的异常处理机制的应用进行介绍、归纳和总结,并试图揭示其实现原理。本文主要介绍终止型异常处理程序的应用并结合反汇编代码分析其实现原理。原创 2017-09-21 23:53:57 · 1100 阅读 · 0 评论 -
《Visual C++异常处理机制原理与应用(二)—— C/C++结构化异常处理之try-finally终止处理的使用与原理(下)》
在上一篇文章中,我们其实只分析了终止型异常处理程序中正常的执行流程,这种情况的出现其实需要作如下假设:__try块中的代码执行过程中不会引发异常这部分代码不会试图提前离开__try块的作用范围(如包含goto、break、continue、return等会导致执行流越出__try块部分的指令)然而俗话说,“理想很丰满,现实太骨感”,在编程中,不得不考虑到各种各样的情况。当被保护的代码块中出现异原创 2017-09-23 22:36:01 · 1301 阅读 · 0 评论 -
Visual C++异常处理机制原理与应用(四)——C/C++结构化异常处理之try-except异常处理的使用(中)
在上一篇博文《Visual C++异常处理机制原理与应用(三)——C/C++结构化异常处理之try-except异常处理的使用(上)》中,我们已经对VC中C/C++结构化异常处理的异常处理机制的特点进行了分析。这篇文章主要通过一个实例讲解C/C++结构化异常处理中可能最令人困惑之处——即多级异常处理与终止处理嵌套时程序的执行流程。原创 2017-12-04 13:41:50 · 857 阅读 · 0 评论 -
Windows异常世界历险记(一)——Windows系统用户级结构化异常处理机制(SEH)的基础知识和Unwind展开操作
Windows系统的用户级结构化异常处理机制(SEH)是基于线程的,因此可为不同的线程指派不同的异常处理函数。且由于其形成了链结构,还可据此为一个线程指定多个异常处理函数,异常发生后,操作系统会沿此链表调用各异常处理函数,直到某个异常处理函数修复了该异常或已达末尾。通常处理完异常后,需要执行展开(Unwind)操作,该操作先通知目标结点前的各异常处理函数释放资源,然后将之前的SEH链全部删除。原创 2017-12-04 17:33:19 · 1326 阅读 · 2 评论 -
Visual C++异常处理机制原理与应用(五)——C/C++结构化异常处理之try-except异常处理的使用(下)
在前面几篇文章中,我们介绍了VC++结构化异常处理的相关内容,目前其用途仅限于捕获代码中本来就存在的异常,比如访问违规、除数为0等异常情况。其实在很多场合,我们也完全可以利用这种机制,触发一个异常,然后让执行流程转入异常处理阶段。原创 2017-12-04 16:37:40 · 529 阅读 · 0 评论 -
Windows异常世界历险记(二)——Win32用户层下SEH机制之对RtlUnwind的逆向分析
RtlUnwind函数是一个用户层的Windows API函数,其作用是执行SEH的展开操作(正是由于Windows的SEH机制不自动进行展开操作,才提供了此API,供需要执行该操作的用户调用)。下面介绍其用处并进行逆向分析。原创 2017-12-04 22:06:13 · 2633 阅读 · 2 评论 -
Windows下使用C++(Win32SDK)编程无需提权读取硬盘序列号(XP、Win7和Win10都可用)
在需要对计算机进行标识的场景下,我们一般会选择获取一些硬件信息。Windows下硬盘序列号的获取本身并不复杂,而关键在于如何在无需权限提升的情况下获取到硬盘序列号。为了解决这个问题,我也查了很多资料,基本上各大博客中贴出的都是需要权限提升的代码。原创 2017-12-30 08:35:45 · 8566 阅读 · 10 评论