- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
下面给出一个程序片段,来说明内存管理函数的用法。 HGLOBAL memHandle;//内存句柄 char far* lpMem;//假设长度为memLen memHandle=GlobalAlloc(GHND,memLen+1);//申请内存块,此处未做返回结果检查, //事实上,申请内存有时会失败 memcpy(lpMem,string,textLen);//拷贝数据,其中string为一字符串变量,textLen//是这个字符串的长度 GlobalUnlock(memHandle);//解锁内存 ... GlobalFree((HGLOBAL) memHandle);//释放内存 返回本节 12.4.3 内存映射文件 内存映射文件是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数(CreateFileMapping)。这样,文件内的数据就可以用内存读/写指令来访问,而不是用ReadFile和WriteFile这样的I/O系统函数,从而提高了文件存取速度。 这种函数最适用于需要读取文件并且对文件内包含的信息做语法分析的应用程序,如对输入文件进行语法分析的彩色语法编辑器,编译器等。 返回本节 12.4.4 Win32s:Windows 3.x对Win32 API的支持 Win32s与Win32是有区别的。Win32s的s的含义是指子集(subset)。 运行在Windows 3.x/Win32s系统上的Win32程序支持32位指针和32位寄存器,只需要在系统调用之前稍作形式替换。 Win32s子集同Win32相比,不支持多线程,高级图形API,异步文件I/O,Unicode和安全性;而且它是运行于16位的Windows系统上的。但是同Win16相比,有它的优越之处,目前在16位Windows程序开发方面有相当的潜力。 返回本节 12.4.5 Win32编程基础 Win32数据类型 这里的数据类型指的是一些关键字,这些关键字定义了Win32中的函数中的有关参数和返回值的大小和意义。 这里需要解释一下的是句柄。句柄是Windows编程的一个关键性的概念,编写Windows应用程序总是要和各种句柄打交道。所谓句柄,就是一个惟一的数,用以标识许多不同的对象类型,如窗口、菜单、内存、画笔、画刷和电话线路等。 由于Windows是一个多任务操作系统,它可以同时运行多个程序或一个程序的多个副本。 Windows不仅使用句柄来管理实例,也用它来管理窗口、位图、字体、元文件和图标等系统资源。 Win32常用的数据类型有: 返回本节 12.5 MFC编程 12.5.1 MFC类库概念和组成 12.5.2 MFC应用程序框架 12.5.3 MFC的优点 12.5.4 MFC对消息的管理 返回首页 12.5.1 MFC类库概念和组成 类库是一个可以在应用中使用的相互关联的C++类的集合。 Microsoft提供了一个基础类库MFC,其中包含用来开发C++和C++ Windows应用程序的一组类。基础类库的核心是以C++形式封装了大部分的Windows API。类库表示窗口、对话框、设备上下文、公共GDI对象如画笔、调色板、控制框和其他标准的Windows部件。这些类提供了一个面向Windows中结构的简单的C++成员函数的接口。 MFC可分为两个主要部分: ①基础类; ②宏和全程函数。 ①基础类; MFC中的类按功能来分可划分为以下几类: 基类、应用程序框架类、应用程序类、命令相关类、文档/视图类、线程类、可视对象类、窗口类、视图类、对话框类、属性表 、控制类、菜单类、设备描述表、绘画对象类、通用类、文件、诊断、异常、收集、模板收集、其他支持类、OLE2类、OLE基类、OLE可视编辑包装程序类、OLE 可视编辑服务器程序类、OLE数据传输类、OLE对话框类、其他OLE类和数据库类。 ②宏和全程函数。 Microsoft基本宏和全程函数提供以下功能: 数据类型、运行时刻对象类型服务、诊断服务、异常处理、CString格式化及信息框显示、消息映射、应用消息和管理、对象连接和嵌入(OLE)服务、标准命令和Windows IDs。 约定:全程函数以“Afx”为前缀,所有全程变量都是以“Afx”为前缀,宏不带任何特别前缀,但是全部大写。 例12-1:CObject类的定义。 // class CObject is the root of all compliant objects class CObject { public: // Object model (types, destruction, allocation) virtual CRuntimeClass* GetRu
文档评论(0)