• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Visual Basic COM基础讲座之兼容性

发布: 2007-6-21 21:57 | 作者:   | 来源:   | 查看: 23次 | 进入软件测试论坛讨论

领测软件测试网

   


  在本教程第二部分的最后,我们遇到一个小问题,但确切地说,那实际上是一个大问题。如果有时间的话,这个问题应该值得我们花大精力去研究。

   还记得我们是怎样遇到那个问题吗?当时,我们先编译ActiveX DLL,然后编译使用该DLL的测试程序。接着,我们重新编译DLL,那是因为假设DLL中的内容需要修改。然而,再运行测试程序时,却出现错误!

   虽然,我们可以重新编译测试程序,以便该程序能正确运行。但是,如果这里不是VB程序,而是Excel数据表或是C++统计程序在使用该DLL,那么是不是每次对ActiveX DLL进行小小的修改后都要重新编译这些程序呢?

   是的,肯定不能这样。

   因为经验告诉我们,这是一个兼容性问题。所以,可以这样处理:

   启动Visual Basic,打开Northwind工程;

   选择"Project"->"Northwind Properties"菜单;

   单击"Component"标签;

   浏览一下"Version Compatibility"的页面内容,可以发现有三个选项。现解释一下:

   No Compatibility —— 每次编译时,用户COM组件都被标有一个新的标记,这就意味着程序只能使用旧标记(以前版本)的DLL。

   Project Compatibility —— 每次编译时,用户COM组件不是总会被标有一个新的标记。如果是的话,任何当前使用的应用程序都会失败。事实上,只有当当前工程和已经编译过的DLL工程有较大不同时才会这样。

   Binary Compatibility —— 每次编译时,应用程序总试图保存前一个编译过的DLL标记,这样就确保了使用的应用程序不会出现蓝屏的死机现象。但是,若当前将要编译的DLL和以前编译过的DLL区别太大,则新的标记就会被标上。

   让我们测试一下上述论点:

   打开本教程上一部分的测试程序;

   重新编译一下;

   试运行一下,应该能正常工作;

   打开ActiveX DLL工程;

   将其属性设置为Binary Compatibility;

   重新编译一下该DLL;

   试运行一下测试程序,应该能正常工作。

   好了,看起来似乎解决了问题。但当重新编译DLL后,大多数开发人员将会陷入另一种不兼容的境地。

   难道就没有更好的解决办法吗?我们暂时将这个问题放到一边!

   您可访问下列站点以获得更多的内容:

   www.PylonOfTheMonth.co.uk.

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网