精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>一般性编程问题>>运行于 Windows 98 上的 MFC/Win32 程序

主题:运行于 Windows 98 上的 MFC/Win32 程序
发信人: skyice()
整理人: wenbobo(2002-12-24 09:18:33), 站内信件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 类别     类型               说明
—————————————————————————————─—
 编译器   Automatic(自动)    局部变量或局部对象。在函数入口
                             用栈空间建立,退出时释放。
—————————————————————————————─—
                             在任何函数作用域外定义的全局变
                             还包括字量和全局对象。静态数据
          Static(静态)       符串常数。用 static 关键字定义
                             的变量和对象也添加到静态数据存
                             储区。这种数据的生命期就是其可
                             执行文件在内存中驻留的时间。
—————————————————————————————─—
                             类成员数据是指根据对类的成员数
                             据的定义,在对象中分配的变量和
                             对象。这种数据的寿命和它所在的
          class(类)          对象相同。局部(堆栈)对象中的数
                             据在函数入口分配,退出函数时清
                             除。全局(静态)对象中的数据在可
                             执行文件驻留内存期间一直存在。
—————————————————————————————─—
                             调用 malloc()或 new() 操作符分
                             配的内存。对于合理的内存管理,
          动态分配           应用程序应当对所有分配的数据区
                             和对象调用 free()或者 delete()
                             操作符。
—————————————————————————————─—
                             调用 GlobalAlloc()分配的内存。
                             在 Win16 中, 它对应一个已分配
 Win16    全局堆类型         的段。 在 Win32 中这种对象是在
                             一个 Win32 进程堆中分配的(就象
                             LocalAlloc() 分配的内存)。
——————————————————————————————─
                             调用 LocalAlloc() 分配的内存。
                             在 Win16 中, 它对应子段分配。
          局部堆             在 Win32 中, 这样的内存驻留在
                             Win32 私有堆中,就象 GlobalAl-
                             loc() 分配的内存。
——————————————————————————————─
                             在资源 (.rc)文件中定义的只读数
                             据。预定义的类型包括菜单、对话
          资源               框和字符串表。使用本章将要讲解
                             的技术,程序中还可以创建自定义
                             资源类型。
——————————————————————————————─
                             存储于内存表中,使用唯一的整数
                             ID 访问的字符串。无论是 Win16 
                             API 还是 Win32 API,都包括 Ad-
                             dAtom()、FindAtom() 和 Delete-
          原子               Atom()。在内部,Windows 将原子
                             用于注册的剪贴板格式和注册的消
                             息。应用程序可以把全局原子表用
                             于动态数据交换 (DDE) 支持。 全
                             局原子例程包括 GlobalAddAtom()
                             和 GlobalFindAtom()。
——————————————————————————————─
                             Windows 为每一个已创建的窗口创
          窗口额外字节       建的实例数据。窗口额外字节是除
                             系统自身存储区以外的私有字节。
——————————————————————————————─
                             Windows为每个已定义的窗口类(不
          类额外字节         同于 C++/MFC 窗口类)创建的实例
                             数据。类额外字节是除系统存储在
                             类中的数据以外的字节。
——————————————————————————————─
                             和 Windows 动态相连的属性。 例
                             如, 你可以创建一个 COLOR 属性
          属性               并且附上一个颜色索引。通过调用
                             Win16 / Win32 例程 SetProp()、
                             GetProp()和RemoveProp() 访问。
——————————————————————————————─
                             通过调用 VirtualAlloc() 按页增
                             量私有内存 (在 Windows 98 中为
 Win32    私有页             4K,Windows NT 中可能更大)分配
                             的内存。在用 MEM_RESERVE  标志
                             调用这个 Win32 函数时, 它还要
                             保留一定范围的地址。
——————————————————————————————─
                             调用 HeapAlloc()分配的内存。调
                             用 HeapAlloc() 可以在 Win32 进
          Win32 私有堆       程中创建多个堆。通过调用 GetP-
                             rocessHeap()可以得到进程的默认
                             堆。
——————————————————————————————─
                             基于单个线程分配的内存。共有两
          线程局部存储       种类型:动态线程局部存储是调用 
                             TlsAlloc() 分配的。 静态线程局
                             部存储是编译器分配的。
——————————————————————————————─
                             调用  MapViewOfFile() 分配的内
                             存,这个函数还根据文件句柄参数
          共享页             创建一个内存映射文件的视图。非
                             法的文件句柄值(-1)创建共享页,
                             合法的文件句柄值创建内存映射文
                             件。
——————————————————————————————─
                             用 __declspec(thread) 声明的静
                             态(全局)变量,定义可执行映象中
          共享区             的共享区。载入内存后,这样的变
                             量无论在  Windows 98  中还是在
                             Windows NT 中, 都可以在程序的
                             进程间共享。
——————————————————————————————─
                             文件调用 MapViewOfFile()连接到
          内存映射           进程地址空间的共享页。注意,这
                             和创建共享页用的是同一个 API。
——————————————————————————————─
          可执行映象         内存中的可执行文件 (.EXE) 或动
                             态链接库 (.DLL)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
repus (Super) 回帖:
我不知道你的文章实摘的还是写的,但恕我直言,有问题。
class是不是属于一种存储类别也许是见仁见智,
但 __declspec(thread)绝不是共享存储器,而是线程局部存储(TLS)的一种。   
--
欢迎您到C语言版来!
欢迎光临BBS系统版!

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.99.93.6]

[关闭][返回]