设为首页
联系站长
加入收藏

您的位置: 首页>>IT业界>>互联网>>正文
 VC语言 收集文件
 日期:2005-6-3 19:27:19  来源:百当软件园
千万不要以为不经过研究,就可以在二、三秒内作好一个安装程序,多数情况下,Windows环境中的所有程序都比程序员预计的情况要复杂得多。例如:本书中的所有例子都依赖于C运行时库文件,到目前为止我还没有提到在应用程序中加入这些文件,源代码中也没有对它们的引用,这是因为第一次安装Visual C++时,已自动放在SYSTEM目录下,关联是自动进行的,在设计应用程序时不需要了解。对MFC文件和数据库应用涉及的文件情况相似,Visual C++即使没有完全地却也基本上帮你增加了所需的文件。然而,现在要做的是将应用程序完整打包提交给最终用户,这时你再也不能无视这些文件的存在了----它们也是应用程序的一部分,必须放在打包之中。问题是如何找出应该包含哪些文件呢?
    找出应用程序应该包含的所有DLL 非常费时间,特别是当使用测试错误的处理方法时更是如此。然而,你可以使用如下的三种方法来进行测试错误处理:
    方法一 使用Windows QuickView 程序查看应用程序的Import Table表项,Import Table列表列出了应用程序所有用到的DLL。下页图(上)是我们在第2、3、15章介绍过的Sngl_Doc程序的QuickView程序列表,它不仅显示了该应用程序用到了哪些文件,而且给出了其中的函数。 方法二 如果程序需要可以使用DumpBin 程序给出DOS命令行方式显示的程序列表。用起来略微有点儿麻烦,但却常常可以发现QuickView发现不了的文件。而且它提供了更多的选项,可限定查找信息的种类,输入命令格式为:DUMPBIN /IMPORTS SNGL_DOC.EXE。下页图(下)是输出结果(这是个命令行程序)。
    技巧 使用DumpBin实用程序时可能会遇到系统报出缺少文件的信息,如果使用的是安装时的缺省设置,那么MSDIS100.DLL 和MSPDB50.DLL文件都在Program Files/DevStudio/SharedIDE/bin目录下,在DumpBin的执行过程中需要用到它和VC/bin目录下的LINK.EXE文件。
    方法三 如果有最新版的Windows SDK,就会看到Depends实用程序,用它就可以找出程序中用到的DLL。

    找出这样一个文件清单还不是文件收集过程的结束,还需要找出相关的全部DLL文件。显然像USER.EXE文件这样安装Windows时就具有的文件不用包含进去,但必须找出那些没有的文件。总而言之,必须手工地检查每个文件及其相关文件,确保都包含在应用程序的打包中。

    技巧 先仔细审查一下只装过Windows的机器中有哪些文件,如果以后要建立多个安装程序,这个文件清单就很有用了。
    当应用程序文件清单完整之后,把它们放在一起,拷贝到装有更高版本的Windows的机器中,检测是否兼容。当缺少文件或是文件不在SYSTEM目录下时,就会看到警告信息。一定要保证放在SYSTEM目录下的文件必须到位,因为将来用户使用起来也是这样。
    注释 尽量将全部DLL文件放在应用程序目录下,而不是在SYSTEM目录下,这样有助于删除程序的实现。而且会少受用户安装的其它程序的干扰,例如:所用到的某个DLL在其它程序中也用到了,而且是个老版本的,安装时会把你的新版本DLL给覆盖了。
相关文章

·Win2000中用户自定义IP头的实现及
·虚拟设备驱动程序结构(Vxd教程3)
·虚拟机管理器VMM(Vxd教程2)
·虚拟设备驱动程序初步(VxD教程一
·用 GDB 调试程序
·对象标准COM和CORBA论长道短
·VxD例程:消息框(Vxd教程5)
·怎样为任何控件和区域添加提示信
·VC:VxD技术及其在实时反病毒中的
·Microsoft Agent的COM接口编程


阅读排行

·Win 2000不能访问Win XP的原因及
·解析Windows中的帐户和权限功能
·如何共享Windows XP操作系统
·Windows XP Service Pack 1
·通过 Windows XP 注册表自定义您
·Windows 2000 TCP/IP协议概述
·Windows 2000 Server TCP/IP协议
·dos常用命令使用说明
·Windows变慢原因分析及解决方法(
·Windows变慢原因分析及解决方法(
·WINXP下强行关闭“杀”不了的进程
·Windows XP系统注册表的恢复

最新文档

·创业激情需冷静 网络代理选择应理
·域名交易平台亟需规范 预防域名买
·Travel旅游域名即将引发抢注潮 
·从原理深处分析如何预防arp攻击
·突破建站弊端 企业网络营销大有可
·如何区分进程和病毒?
·java的基础知识,如何学好java
·微机原理与接口技术基础知识
·如何解决青少年沉迷网络的问题,
·全面分析主板BIOS报警信号

请您注意:
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·您在本站发表的作品,本站有权在网站内转载或引用
·其他网站如果需要转载 本站文章请在贵站著名来源,谢谢合作