『VC++技术内幕』学习笔记(4)

2016-02-19 12:57 7 1 收藏

今天给大家分享的是由图老师小编精心为您推荐的『VC++技术内幕』学习笔记(4),喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

【 tulaoshi.com - 编程语言 】

  第四篇:资源和编译

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  资源文件(就是以应用程序名和扩展名是.rc的文件)很大程度上决定了应用程序的用户界面。在VC++中资源文件包括以下内容:

Accelerator //模拟菜单和工具栏的选择内容
Dialog //对话框的布局及内容
Icon //图标有两种一种是16X16一种是32X32。
Menu //应用程序的主菜单及所属的弹出式菜单
String table //字符串不属于C++源代码部分
Toolbar //工具条。
Version //程序的描述、版本号、支持语言信息。
以上信息都在.rc文件中包含,同时.rc文件还包含了以下语句:
#include "afxres.h"
#include "afxres.rc"

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  它们的作用是把适合于所有应用程序的一些通用MFC库资源包含进来。

  关于资源编辑器的使用就不多说了,因为它的操作很简单,需要注意的是虽然resource.h是一个ASCII码文件可以用文本编辑器进行编辑,单如果使用文本编辑器进行编辑的话,下次再使用资源编辑器时所做的修改有可能丢失,所以我们应该在尽量在资源编辑器中编辑应用程序的资源,新增的资源内容回自动的添加在我们的程序相应位置,例如resource.h而不用我们操心。这便是为什么称为Visual (可视)的原因之一。

  编译在VC++中有两种模式,一种是Release Build另一种是Debug Build。它们之间的区别在于,Release Build不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFC Release库,编译十对应用程序的速度进行优化,而Debug Build则正好相反,它允许对源代码进行调试,可以定义和使用MFC的诊断宏,采用MFC Debug库,对速度没有优化。所以我们应该在Debug模式下开发应用程序,然后在Release模式下发布应用程序。在我们的工程文件夹下会有一个Debug文件夹和一个Release文件夹分别存放输出文件和中间文件。

  诊断宏是我们编译程序时检测程序状态的有利工具,例如上两篇用到的TRACE宏,可以在Debug窗口获得你需要的诊断信息,而不用设置对话框之类的方法,在发布时Release会自动滤掉此信息。

  实际上对一个应用程序的调式是一件很具挑战的工作,我相信我们都有类似的经历,从网上或书本上找来了一段代码或源程序,当我们一点点将他们敲进 Deleloper Studio后进行编译时一下子出现了无数的错误和警告,(有些书的源代码就是错误的)这是需要的耐心和经验,有了VC++提供的调试工具如诊断宏、设断点、单步执行等等,会让我们省不少力气。至于编译的话题其实应该有很多可以说,但由于雷神本身的经验不足只能把书上所讲的作一个总结,大家应该熟练的掌握VC++为我们提供的的各种调试工具,象SPY之类的工具在MSDN中也有很详细的使用帮助说明,到现在我体会到了高手们所说的MSDN是最好的最全的也是最权威的。

来源:http://www.tulaoshi.com/n/20160219/1602598.html

延伸阅读
第七章:无模式对话框 和 Windows通用对话框类 1,[无模式对话框]在它处于激活状态下还允许用户在(同一个应用程序中)其它地方工作。    [通用对话框]则是C++和一组Windows的实用对话框之间的程序设计借口,包括File Open,Page Setup,Color等等,它们都是通过COMDLG32.DLL来实现的。 2,两种发送Windows消息: CWnd::SendMessag...
第八章:使用ActiveX控件 1,ActiveX控件是一个直接插入到C++程序中的软件模块,以前常称OLE控件(OCX),是基于MS-COM技术。 2,ActiveX控件与普通Windows控件比较: 相同点:ActiveX控件也可看成是一个子窗口(可以看成这样的)。 如果想在对话框上加入ActiveX控件,则只要在对话框编辑器中,把ActiveX控件放在适当的位置上,并在资源模...
第六章:模式对话框和Windows通用控件 1,对话框也是窗口,它不当可以接受消息,而且还可以被移动和关闭,甚至可以在它的客户区中进行绘图操作。 2,模式对话框在被关闭之前,用户无法在同一应用程序的其它地方进行工作。模式对话框更易于编程。 无模式对话框在它仍保留在屏幕的同时,用户还可以在应用程序的其它窗口进行工作。 3,对话框...
第一章:Microsoft Windows 和 Visual C++ 1,Windows应用程序中一定要有WinMain函数,用来完成某些特殊的任务,其中最主要的是创建应用次序的主窗口。 2,DOS下,所有次序的目标模块在创建过程中都被静态连接起来。而Windows允许动态连接,即一些特定结构的库(DLL)可以在运行过程中被装入和连接,并且被多个应用程序共享。 3,项目是一些相...
去年的时候,由于某种原因,我需要将一个文件的二进制形式以文本的格式输出到一个文本文件中,类似下面这个样子:   4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00   B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00 00 00 00 00...

经验教程

843

收藏

15
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部