教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> VB >> 控件集锦 >> Visual Basic COM基础讲座之兼容性 RSS订阅
Visual Basic COM基础讲座之兼容性
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
在本教程第二部分的最后,我们遇到一个小问题,但确切地说,那实际上是一个大问题。如果有时间的话,这个问题应该值得我们花大精力去研究。

  还记得我们是怎样遇到那个问题吗?当时,我们先编译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.

来源:十度教育
作者:
关键字:Visual,Basic
发表日期:2006-5-22 20:04:28

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:VB COM基础讲座之ActiveX EXEs   下一篇:VB COM基础讲座之全面测试


2008-11-23 21:09:44
本文的相类似文章
  • Visual Basic_美化你的文字
  • Visual Basic 6中发送邮件的新方法
  • Visual Basic 中字符淡出淡入的实现
  • 想不到的VB指针用法{Visual Basic6.0}
  • Visual C#的SQL Server编程
  • 建立你自己的浏览器-发送到Visual Interdev
  • Visual Basic小游戏:猜英雄
  • Visual Basic的九次蜕变
  • Visual Basic内嵌汇编语言解决方案
  • Visual Basic不可能消失
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com