//获得os版本信息, 并存储在一个全局变量中
dwversion = getversion()
... ...
//处理不同平台
if( dwversion < 0x80000000 ) {
//windows nt
} else if( lobyte(loword(dwversion())) < 4 ) {
//win32s
//由于不能使用线程, 所以background porting 无效
enablemenuitem( getmenu(hwnd), idm_portbkgnd, mf_grayed )
} else{
// windows 95
}
windows 95 代码键
作为开始, 在几个工具的帮助下, 用户既可以把16位基于windows的应用软件移植到
win32的, 支持ole的应用软件中, 也可以重新开发win32的, 支持ole的应用软件. 利用
user interface design guide, 用户可以在使用现有对话框及正确理解新控件的条件
下准备应用软件来开拓win95. 用户可以利用"writing great win32 applications"表
的帮助来了解三个平台提供的功能. 当用户准备在目标平台上测试应用软件, 用户有
理由相信, 在nt和win32s上均可运行的应用软件一定也可以在windows95上运行.
同于不同的平台有不同的特征, 在三个平台上都测试一下应用软件是极其重要的. 平台
之间的不同主要包括:
.win95和nt均是抢占式运行多任务环境, 为基于win32的应用软件提供分离的受保护
地址空间, 而win3.x with win32s是一个非抢占式运行多任务环境, 在该环境里所有
应用软件共离相同的地相空间.
.windows 3.x with win32s 有一个同步输入队列. win95 和nt有不同步的输入队列.
.win32s运行在windows 3.x上, 因此和windows 3.x一样, 只能为gdi( 图形设备接口)
区提供64k存储空间. 相反, win95 和nt在32位堆以外分配区域, 因此, 区域可以和可
提供的存储空间一样大.
.windows3.x with win32s和win95有16位全局坐标系统, 该系统限制图文的x和y坐标
在32k字节范围之内. nt使用32位全局坐标系统, 允许图文的x和y坐标达到2bg字节.
如果32位数值传送到文本和图形函数, win32s和win95在执行请求操作之前截去坐标的
高16位.
创建一个大型windows95应用软件所要做的最重要的十件事情
10.在所有的windows平台上测试应用软件.
9.在系统注册处登记大小图标, 缺省动词等.
8.监视pnp事件.
7.支持长文件名和unc路径名.
6.使用通用控件和对话框.
5.遵循user interface design guide.
4.注册ole class id.
3.在ole 2.0复合文件中驻留summary信息流.
2.实现ole 2.0拖放功能.
1.使用win32 api.