编写可以在所有WINDOWS平台上运行的应用软件[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 vcbear 的 blog

编写可以在所有windows平台上运行的应用软件 


 
---摘自软件世界1995.11 作者不详, 对原作有部分改动, 如"串"改为"线程", 
   "对话"改为"对话框"等等.                     ---- tsai ---- 
 
windows 95的出现使pc的使用非常容易, 并吸引越来越多的人使用pc. 这将导致对 
windows应用软件以及基于windows应用软件的开发人员的巨大需求. windows 95为 
应用软件的更易使用以及和windowqs平台的更高集成, 带来新的景象和机会. 
 
win32和ole2.0 
对一个较高水平而言, 基于windows的应用软件开发人员在开发windows95的应用软件 
时需要考虑五个重要因素: 最重要的两个因素是win32和ole2.0. 它们是为所有平台编写 
大的windows应用软件的基本建造模块; 第三个因素是开发者应遵循正为未来的windowws 
操作系统开发的user interface design guide, 它包含使用的通用控件和对话; 第四个 
因素是plug-and-play事件跟踪, 这使得顾客只需插入一个设备并打开pc--系统做剩下 
的所有工作. 开发人员编写的应用软件应是plug-and-play事件清楚的, 以便于应用软件 
能够很好地安置在windows 95中,对设备的插入和拔出这些变化很清楚; 最后一个因素是, 
开发者应当利用所提供的对注册信息,长文件名和通用命名约定(unc)路径名的支持以及 
所提供的数据类型的文件观察器, 使得开发出的应用软件和windows95外壳较好地集成在 
一起. 幸运的是, 开发者考虑上述五个因素以后开发出的应用软件通过win32 api仍可在 
windows nt和windows 3.1操作系统上运行. 不仅如此, 开发出的应用软件还可以在 
windows nt下一版本cairo下运行. 
 
win32: 一个api, 多个平台 
使用win32 qpi, 用户可以开发出在windows95, windows nt, 以及windows 3.x上均能 
成功运行的应用软件, 该软件仍可利用基础平台的特征. 主要原因在于, win32 api 
提供一套向上兼容的win32功能,信息,结构, 它们在windows95, windows nt和windows 
3.x或windows nt的下一版本cairo上运行的结果是一致的. 
特定平台的基础能力决定了win32 api在其中实现的程度. 例如, 所有windows平台, 
包括windows 3.1 with win32, 为包括32位虚拟内存管理(virtualalloc)和存储映射 
文件的强有力功能提供一个环境, windows95和nt允许应用软件编写者利用一些附加 
功能, 如线程和长文件名, windows 3.x with win32s没有这些功能 . windowsnt提供了 
windows95 和win32s没有的一些附加功能, 例如安全性和unicode api. 
由于win32s和windows95上还保留着不被支持的功能, 用户可用getversion函数探测 
基础平台的种类, 因而在一次执行中可利用不同水平的功能(依平台种类而定). 例如, 
用户可以编写一个应用软件, 它在windows95和windows nt上运行时使用长文件名和 
线程, 在windows 3.x with win32s上运行时提供8.3文件名, 并且使线程无效. 
与基于windows的16位应用软件不同,运行在windows95 和nt上的win32应用软件抢占式 
运行多任务, 也能在它们分离的,保护的地址空间运行多个执行线程. win32应用软件允 
许用户真正地同时操作多个任务. 例如, 用户可以同时进行编译,复杂的电子数据表核 
算, 文件打印及单人玩纸牌游戏. 
 
可移植的win32应用软件 
从发展的角度来看, 应用软件可以访问32位的带状存储空间, 避免使用段存储空间. 
win32 api就利用了目前的32位处理器, 也允许应用软件使用新的api创新, 例如路径, 
bozier以及线程. win32 api也可以移植到非intel平台, 例如mips r4000/r4400, dec 
alpha axp以及powerpc. 这意味着用户只需重新编译和测试应用软件, 该软件就可在多 
个硬件配置上运行. 
把现有的windows 16位应用软件4移植到win32中要相对容易些. 事实上, 伴随win32 sdk 
提供了一个被称为porttool的工具, 可以在把win16应用软件移植到win32的过程中扫描 
源代码, 并指出哪些代码需要加以修改. porttool的一个修订版本, 已经出现在ms 
development library中, 不仅可以帮助软件移植, 也可以示范一个应用软件如何做到 
既可以利用所在基础平台的独特功能, 双可以在所有平台上运行. 
 
对象连接和嵌入 
ole2.0版本为最终用户提供了一个用来创建复合文档的一致性方法使交叉应用程度的编 
程成为可能并提供在应用软件和桌面计算机之间的拖放功能 . 它也允许用户从外壳阅读 
丰富的文件信息, 例如图标,动作以及应用软件自身的特性. 
windows95是ms的第一个实现以文件为中心模式,用在个人计算机上的操作系统产品. 
windows 95拉口开发的目的是为由ole2.0规定定义的最终用户功能提供基础以及使 
windows当前用户开始使用windows95时使用效率就很高. 
为了与windows95环境很好地集成在一起, 应用软件应当采用ole2.0技术, 例如复合文 
件, 拖放功能, 可视编辑以及自动化. 应用软件使用复合文件以及在被称作为 
"summary information"的文件中驻留一个信息流是非常重要的. windows95将使用该流 
的信息提供关于来自外壳中文件的补充信息. 另外, 如果用户为他们的应用软件注册 
ole2.0, ole类标识等, 并且适当设置文件类型, windows95 能够跟踪哪一个应用软件 
创建了哪一个不带扩展名的文件, 以获得有关ole2.0重要性的更加具体的信息. 
 
用户接口设计指导: 一致性和集成性 
 
windows操作系统和基于windows的应用软件的一个大的优点即一致性. 在学习如何使用 
windows和至少一个基于window析应用软件以后, 熟悉一个新的应用软件相对来说就比较 
容易. 一致性也建造了一个内聚环境, 允许人们把注意力集中于他们的数据而不是应用 
软件和外壳. 
另一个优点是user interface design guide, 它描述了如何设计运行在windows操作系 
统上的软件. 它的目的是促进基于windows软件内部以及软件之间的可视性和功能的一 
致性. 
windows接口功能的增强为从基本的图形用户接口设计向更加面向对象的用户接口设计演 
变铺平了道路, 面向对象的用户接口以数据为中心, 而不是以应用软件为中心. 这种设 
计是ole所提出方向的继续作为结果. 开发都和设计者可能需要重新考虑接口中应包括 
哪些基本的组成部分(对象)以及对象的操作和属性. 虽然应用软件仍是重要的, 但它们 
不再是用户考虑的焦点. 用户应当能够不用考虑如何开始一个应用软件就能与他们的数 
据相互作用, 因此用户可以把注意力集中在他们的任务上. 
应用软件可以自动使用许多新的可视工具以发出标准的win32 api调用. 例如, 一个新的 
带有左对齐标题文本的标题条将出现在应用软件中, 对应用软件部件未作任何修改. 对 
于其他标准的windows控件, 情况也是这样. 然而, 如果开发者开发一个使用用户控件 
的应用软件, 开发者应当了解一下设计指导, 考虑使用新的通用控件和对话框. 

本文关键:编写可以在所有WINDOWS平台上运行的应用软件
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top