Visual Basic COM基础讲座之兼容性

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

  还记得我们是怎样遇到那个问题吗?当时,我们先编译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 COM基础讲座之简介

"世上无难事,只要肯登攀",所以你要有信心成为一个COM程序员,而且你一定能。   事实上,我们每次设置文本编程控件的Text属性时,就已经在使用COM,同样在DAO数据控件运行MoveNext方法时...
  • naive1010
  • naive1010
  • 2004年11月02日 08:35
  • 876

Visual Basic COM基础讲座之(二)

VB COM基础讲座之可重用性 还记得我们是怎么将一个类添加到标准的Visual Basic工程中的?   是的,一流的COM体系的最大特点是其代码的可重用性。  换句话说,如果用Visual Bas...
  • guyehanxinlei
  • guyehanxinlei
  • 2007年04月13日 17:12
  • 751

Visual Basic COM基础讲座之(四)

VB COM基础讲座之编译的实例选项  在测试文件组件之前,我们必须先编译它。但在进行这项工作之前,让我们先来浏览一下Visual Basic所给出来的一些额外选项。  在打开FileCheck代码窗...
  • guyehanxinlei
  • guyehanxinlei
  • 2007年04月13日 17:20
  • 511

Visual Basic COM基础讲座之事件

 相对来说,事件的使用是比较简单的。在使用前,我们必须先定义该事件,这就意味着通知Visual Basic什么事件被调用。一个事件可能有自己的参数,例如,一个Command按钮有一个Click(单击)...
  • naive1010
  • naive1010
  • 2004年11月02日 08:57
  • 714

Visual Basic COM基础讲座之(一)

Visual Basic COM基础讲座之简介 "世上无难事,只要肯登攀",所以你要有信心成为一个COM程序员,而且你一定能。   事实上,我们每次设置文本编程控件的Text属性时,就已经在使用COM...
  • guyehanxinlei
  • guyehanxinlei
  • 2007年04月13日 17:09
  • 1061

Visual Basic COM基础讲座之

简介   首先,COM是一种通信的方式。 例如,就像我们的电视遥控一样。当我们按下某个频道按钮时,电视频道立马切换;而当我们按下开关按钮时,电视立即关闭等等。其实,我们并不关心它们是怎样工作的,我们只...
  • yiyiyicz
  • yiyiyicz
  • 2013年09月14日 19:29
  • 744

Visual Basic COM基础讲座之属性

属性操作很像公共变量,但属性还有更多的控制。   常用属性通常包括"Get(获取)"和"Let(设置)"两种。这两项操作能规定一个主要属性,就像下面的代码片段:  Private intAge As ...
  • naive1010
  • naive1010
  • 2004年11月02日 08:43
  • 941

Visual Basic COM基础讲座之(三)

 VB COM基础讲座之建立测试程序 这里我们直接创建一个应用程序来测试一下前面生成的ActiveX EXE文件监视组件:   新建一个"Standard EXE"工程;下面需要添加一个引用到我们的新...
  • guyehanxinlei
  • guyehanxinlei
  • 2007年04月13日 17:17
  • 685

Visual Basic图像处理基础讲座

Visual Basic图像处理基础讲座  ⊙技术开发专题精选新年贺礼 2004年开发专题精选回顾 2004开发技术年度综述 软件技术和职业的顶峰:架构与架构师基于Visual Basic的COM入门...
  • ark1111
  • ark1111
  • 2005年02月17日 15:18
  • 1203

Visual Basic COM基础之更多属性

 有时候,为了更好地处理类往往需更多的属性。例如,假如你有四种不同的客户群:集团、较大、较小和新的客户类型,或者一个用于搜索的类中有三种不同的搜索方式:软盘、硬盘和网络。那么,能不能最好从选项列表中选...
  • naive1010
  • naive1010
  • 2004年11月02日 08:47
  • 947
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Visual Basic COM基础讲座之兼容性
举报原因:
原因补充:

(最多只允许输入30个字)