windows核心编程指南28.pdf

windows核心编程指南28.pdf

ID:51492471

大小:491.25 KB

页数:11页

时间:2020-03-25

windows核心编程指南28.pdf_第1页
windows核心编程指南28.pdf_第2页
windows核心编程指南28.pdf_第3页
windows核心编程指南28.pdf_第4页
windows核心编程指南28.pdf_第5页
资源描述:

《windows核心编程指南28.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、下载第七部分附录附录A建立环境读者要想建立本书中的示例程序,必须要对编译程序和链接程序的开关选项进行设置。笔者试图将这些设置方面的细节从示例程序中隔离出来,把所有这些设置放在一个头文件里。这个头文件就是CmmHdr.h,它包含在所有示例程序的源代码文件中。因为无法将所有的设置都放在这个头文件里,我们对每个示例程序的项目设置做了一些改变。对每个项目,我们显示ProjectSettings对话框,然后做下面所说的改变。¥在General栏,设定OutputFiles目录,这样所有最终的.exe和.dll文件都在一个

2、目录之下。¥在C/C++栏,选择CodeGeneration条目,并对UseRun-TimeLibrary字段选择MultithreadedDLL。这样就可以了。我只明确改变了两个设置,而接受了其他所有的默认设置。注意要对每个项目的Debug建立和Release建立都做上述两个改变。我可以在源代码中设定所有其他的编译程序和链接程序的设置,当你在你的项目中使用这里的任何源代码模块时,这些设置都将起作用。A.1CmmHdr.h头文件所有的示例程序都要包含CmmHdr.h头文件,并且要在其他头文件之前包含。笔者编写的

3、CmmHdr.h列在清单A-1里。这个文件给笔者带来不少便利。这个文件包含宏、链接程序指令、还有一些其他所有示例程序公用的内容。当我想做某些实验时,我只需修改并重建(rebuild)所有的示例程序。CmmHdr.h在所附光盘的根目录下。这个附录的其余部分将分别讨论CmmHdr.h文件的每一节,解释每一节的基本原理,并描述在重建所有示例程序之前,如何及为什么要对这个文件进行修改。A.1.1Windows版本建立选项因为有些示例程序调用了MicrosoftWindows2000中提供的新函数,本节定义_WIN32_

4、WINNT符号如下:这样做是因为新的Windows2000函数在Windows头文件中被定义成下面这样的原型:676计计第七部分附录下载除非像我这样专门定义_WIN32_WINNT(在包含Windows.h之前),否则这些新函数的原型就没有被声明,当试图调用这些函数时,编译程序将产生错误。微软用_WIN32_WINNT符号来保护这些函数,以使程序员开发的应用程序能够运行在Windows98及WindowsNT的多个版本上。A.1.2Unicode建立选项笔者编写的所有这些示例程序既可按ANSI来编译,也可按Un

5、icode来编译。当针对x86CPU体系结构来编译这些程序时,ANSI为默认选择,这样程序可以在Windows98上执行。但对其他CPU体系结构建立程序就要用Unicode,这样程序可以占用较少的内存,并且执行得更快。为了对x86体系结构建立Unicode版本,只需将定义UNICODE的那一行代码的注释符去掉,并重建程序。通过在CmmHdr.h定义UNICODE宏,可以很容易地控制如何建立示例程序。关于Unicode的详细内容,可参见第2章。A.1.3窗口定义和第4级警告笔者在开发软件时,总是想保证代码的编译不

6、受错误和警告的限制。我还喜欢在可能最高警告级上进行编译,这样编译程序可以替我做大多数工作,甚至为我检查很小的细节。对于MicrosoftC/C++编译程序,这将意味着我要使用第4级警告来建立示例程序。遗憾的是,微软的操作系统开发部在关于使用第4级警告做编译方面,与我没有共同的思想。其结果,当我使用第4级警告编译示例程序时,Windows头文件中的许多行引起编译器产生警告。幸好,这些警告并不表示代码中有问题。大多数情况是由于C语言中非传统的用法所引起的,这些用法依赖编译程序的扩展,几乎所有与Windows兼容的编

7、译程序厂商都实现了这些扩展。本节我确保警告级设定为3,而且CmmHdr.h包含标准的Windows.h头文件。当包含了Windows.h时,在我编译其余代码时就设置第4级警告。在第4级警告上,编译程序对那些我不认为有问题的内容发出“警告”,这样我通过使用#pragmawarning指令显式地告诉编译程序忽略某些良性的警告错。A.1.4Pragma消息帮助宏在我编写代码时,我喜欢让代码的某些部分能够立即运行起来,然后再完善它。为了提醒自己要特别注意某些代码,我习惯于加入下面这样一行代码:当编译程序对这一行进行编译

8、时,它会输出一个字符串提醒我还需要再做一些工作。但这条消息不怎么有用。我决定寻找一种办法,让编译程序输出源代码文件的名字,以及pragma出现的行号。这样,我不光知道要做一些工作,而且能够立刻确定在什么地方做。为了达到这个目的,需要使用一系列宏来修饰pragmamessage指令。可以这样使用chMSG宏。当编译程序编译上面这一行代码时,会产生这样一行内容:使用MicrosoftVis

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。