ASON是由信令控制实现光传输网内链路的连接/拆线、交换、传送等一系列功能的新一代光网络。ASON使得光网络具有了智能性,代表了下一代光网络的发展方向。信令、路由和资源管理是实现ASON的三大关键技术,而这三个方面的研究工作可以说是实现光网络智能化的重点和难点之所在,一旦这些问题得到解决,光网络智能化的进程将向前迈出关键的一步。智能光网络的关键技术如图8-21所示。......
2023-11-04
MFC所有的封装类一共有200多个,但是MFC的内部技术不只是简单的封装。MFC的内部总共有六大黑箱技术架构起整个MFC的开发平台。六大关键技术的目的是为了提高开发效率,开发者只要在局部作简单的修改,即可处理大部分窗口事务。MFC的六大关键技术包括MFC程序的初始化过程、运行时类型识别(RTTI)、动态创建、永久保存、消息映射和消息传递。
下面新建一个Win32程序,手动升级到MFC程序,演示“MFC初始化过程”的原理。
1)执行File→New命令或按快捷键<Ctrl+N>,弹出新建对话框,如图3-14所示。
图3-14 建立Win32应用程序
选中“Win32 Application”列表项,选择工程目录后填写工程名称“MFC32”。
2)单击“OK”按钮后进入应用程序,选中“A simple Win32 application”,如图3-15所示。
图3-15 Win32应用程序向导
3)单击“Finish”按钮完成创建工程后,在类视图中双击WinMain函数并修改代码,如图3-16所示。
图3-16 编写CWinApp派生类
4)按<F7>键编译代码,输出窗口中的错误提示,如图3-17所示。
图3-17 基类未定义错误
5)错误原因是没有包含CWinApp类所在的头文件。
在FileView中双击“StdAfx.h”,去掉Win32头文件并添加MFC头文件,如图3-18所示。
6)再次按<F7>键编译代码,错误提示如图3-19所示。
7)产生这个错误的原因是没有链接到MFC代码库。
图3-18 添加MFC头文件
图3-19 MFC链接错误(www.chuimin.cn)
执行Project→Settings命令或者按快捷键<Alt+F7>进行设置。在“Project Settings”对话框中选择“Use MFC in a Static Library”,然后单击“OK”按钮完成MFC链接设置,如图3-20所示。
图3-20 MFC类库链接设置
8)按<F7>键编译没有错误,运行生成的可执行文件测试代码,如图3-21所示。
图3-21 查看运行结果
9)CWinApp::InitInstance虚函数与WinMain函数的关系。
把光标停放在CMyApp类中的InitInstance函数处,按<F9>键设置断点,再按<F5>键让程序运行到断点处。从Variables的调试窗口的下拉列表中,可以看到MFC执行程序的启动过程。操作系统内核(kernel32.dll)先调用WinMain函数,在WinMain函数中再调用CWinApp派生类中的InitInstance函数,如图3-22所示。
10)在下拉列表中随意单击列表中的每个函数,都可以查看到对应的函数代码,如图3-23所示。
图3-22 在调试窗口中查看函数之间的调用关系
图3-23 MFC封装的启动过程代码
在AfxWinMain函数中,发现其中pThread和pApp都是指向theApp全局变量地址的指针变量。通过基类指针执行pThread→InitInstance()时,会自动回调到派生类中,因为该函数是虚函数。
11)任何应用程序启动的过程,都是从操作系统内核(kernel32.dll)调用可执行文件的主函数开始的。控制台或者DOS程序的主函数是main函数,而Windows程序的主函数是WinMain函数。MFC程序和Win32程序一样,都是由WinMain函数启动的,只不过MFC将WinMain函数封装起来了而已。对于初学者可以认为,CWinApp派生类中的InitInstance虚函数就是MFC程序的主函数。
12)不借助“MFC AppWizard”,手工建立MFC程序只需几个步骤。
①从CWinApp类派生一个应用程序类。
②使用派生类定义的全局变量(theApp)。
③在预定义头文件“stdafx.h”中禁用“windows.h”,取而代之是以afx开头的MFC头文件。
④编译设置中选择“Use MFC in a Static Library”。
⑤在CWinApp派生类中,重写InitInstance函数作为程序启动代码。
有关VC++就业培训宝典之MFC视频教程的文章
ASON是由信令控制实现光传输网内链路的连接/拆线、交换、传送等一系列功能的新一代光网络。ASON使得光网络具有了智能性,代表了下一代光网络的发展方向。信令、路由和资源管理是实现ASON的三大关键技术,而这三个方面的研究工作可以说是实现光网络智能化的重点和难点之所在,一旦这些问题得到解决,光网络智能化的进程将向前迈出关键的一步。智能光网络的关键技术如图8-21所示。......
2023-11-04
在本章第5节中,通过“Win32 Application”建立的MFC32工程,目的是为了演示MFC工程的架构原理。一个MFC工程必须包含一个CWinApp的派生类,并定义一个派生类的全局变量theApp,最后重写InitInstance虚函数用于处理进程启动过程。本节直接通过“MFC AppWizard”来创建MFC工程,用于对照以上说明的MFC必备因素。图3-54 程序向导生成的代码图3-55 MFC类向导在Class name下拉列表中选择CTestMFCDlg类,在Member functions列表框中显示4个已添加的回调函数。......
2023-11-25
本节通过MFC应用程序向导新建一个工程,演示基于MFC架构平台的对话框程序。图2-29 MFC应用程序向导第三步选中“As a statically linked library”单选按钮,最后单击“Finish”按钮完成MFC工程的创建。在使用MFC应用程序向导新建工程时,选择“As a statically linked library”选项编译器会把MFC类库代码编译到可执行文件内部;选择“As a shared DLL”使用系统内共享的MFC动态库。在各个软件公司内一般要求使用静态链接,本书也统一要求新建MFC工程时都使用静态链接方式。12)API和MFC的关系。......
2023-11-25
本节演示在MFC中,开发弹出对话框的过程和弹出对话框消息处理的过程。MFC的消息处理不是使用一个全局的回调函数,而是创建一个与窗口关联的派生类,用于消息关联的成员函数来接收和处理窗口的消息。在类向导中选择对应的消息,添加与该消息关联的成员函数来处理该消息,这就是MFC的消息映射机制。MFC的消息映射机制,一般不需要开发者解析这些复杂的数据,因为消息映射函......
2023-11-25
互联网网络通信的基础是TCP/IP,即传输控制协议和网络互联协议。按照TCP/IP规定,32位IP地址用4个字节来表示,例如,“192.168.1.100”。图15-1 通过命令查看本机网络配置在“本地连接”的属性设置对话框中,双击“Internet协议”,如图15-2所示。图15-2 查看网络邻居属性图15-3 TCP/IP属性设置在TCP/IP中计算机软件通信必须依赖于通信端口,端口号的范围是0~65535。......
2023-11-25
在一些MFC派生类中重写OnCmdMsg虚函数,可以对WM_COMMAND消息的发送路径进行管理。例如,在主框架类中收到命令消息后,调用活动视图子窗口的OnCmdMsg函数,让活动视图子窗口得到优先处理。创建一个工程名为“cm”不使用文档视图架构的SDI程序,用于了解命令传递机制。7)在OnFocus和OnCmdMsg两个函数中,也删除ChildView的代码。图13-36 查看运行结果通过重写OnCmdMsg函数,将主框架内接收的命令消息准确地分发给两个视图子窗口。......
2023-11-25
面向PLM的企业运作参考模型是研究开发、实施与推广PLM系统的重要基础。制造业如何改进企业运作过程来适应PLM技术的实施是问题的关键所在。PLM系统需要管理企业全生命周期中的数据,通过产品多视图管理技术和语义网络驱动模型将存在复杂层次化关联语义的企业数据组织管理起来。......
2023-06-23
相关推荐