linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > Basic >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·VB读取文件内容的简单方法
·用VB查询数据库记录四法
·Visual Basic串口通信程序设计
·基于VB6.0射击游戏实例
·为你的VB程序程序加密(VB新手
·VB新手常见问题解答
·什么是BASIC语言
·VB的坐标系统综述
·Visual Basic变态用法之函数指
·如何编写高质量的VB代码
·VB COM基础之ActiveX EXEs
·菜鸟入门:VB编程规约
·Visual Basic代码优化的六条定
·在VB应用程序中调用Excel2000
·VB COM基础之创建第一个COM对象
最新文章
·VB2005中开发新一代控制台应用
·VB的坐标系统综述
·变量的作用域与存活期
·VBScript 数据类型
·为你的VB程序程序加密(VB新手
·VB新手常见问题解答
·用VB开发即时战略游戏
·窗体迁移大法
·VB编程的几个API函数的应用问题
·VB编程的一些基础的问题
·利用VB6.0开发基于IIS的应用程
·在VB应用程序中调用Excel2000
·菜鸟入门:VB编程规约
·Visual Basic 安装程序的制作
·.NET和VB编程创建SQL Server
Google
 
Visual Basic COM基础之兼容性
[ 作者:  加入时间:2007-10-19 13:07:40  来自:Linux联盟收集整理 ]
在本教程第二部分的最后,我们遇到一个小问题,但确切地说,那实际上是一个大问题。如果有时间的话,这个问题应该值得我们花大精力去研究。 UF5Linux联盟
UF5Linux联盟
   还记得我们是怎样遇到那个问题吗?当时,我们先编译ActiveX DLL,然后编译使用该DLL的测试程序。接着,我们重新编译DLL,那是因为假设DLL中的内容需要修改。然而,再运行测试程序时,却出现错误! UF5Linux联盟
UF5Linux联盟
   虽然,我们可以重新编译测试程序,以便该程序能正确运行。但是,如果这里不是VB程序,而是Excel数据表或是C++统计程序在使用该DLL,那么是不是每次对ActiveX DLL进行小小的修改后都要重新编译这些程序呢? UF5Linux联盟
UF5Linux联盟
   是的,肯定不能这样。 UF5Linux联盟
UF5Linux联盟
   因为经验告诉我们,这是一个兼容性问题。所以,可以这样处理: UF5Linux联盟
UF5Linux联盟
   启动Visual Basic,打开Northwind工程; UF5Linux联盟
UF5Linux联盟
   选择"Project"->"Northwind Properties"菜单; UF5Linux联盟
UF5Linux联盟
   单击"Component"标签; UF5Linux联盟
UF5Linux联盟
   浏览一下"Version Compatibility"的页面内容,可以发现有三个选项。现解释一下: UF5Linux联盟
UF5Linux联盟
   No Compatibility —— 每次编译时,用户COM组件都被标有一个新的标记,这就意味着程序只能使用旧标记(以前版本)的DLL。 UF5Linux联盟
UF5Linux联盟
   Project Compatibility —— 每次编译时,用户COM组件不是总会被标有一个新的标记。如果是的话,任何当前使用的应用程序都会失败。事实上,只有当当前工程和已经编译过的DLL工程有较大不同时才会这样。 UF5Linux联盟
UF5Linux联盟
   Binary Compatibility —— 每次编译时,应用程序总试图保存前一个编译过的DLL标记,这样就确保了使用的应用程序不会出现蓝屏的死机现象。但是,若当前将要编译的DLL和以前编译过的DLL区别太大,则新的标记就会被标上。 UF5Linux联盟
UF5Linux联盟
   让我们测试一下上述论点: UF5Linux联盟
UF5Linux联盟
   打开本教程上一部分的测试程序; UF5Linux联盟
UF5Linux联盟
   重新编译一下; UF5Linux联盟
UF5Linux联盟
   试运行一下,应该能正常工作; UF5Linux联盟
UF5Linux联盟
   打开ActiveX DLL工程; UF5Linux联盟
UF5Linux联盟
   将其属性设置为Binary Compatibility; UF5Linux联盟
UF5Linux联盟
   重新编译一下该DLL; UF5Linux联盟
UF5Linux联盟
   试运行一下测试程序,应该能正常工作。 UF5Linux联盟
UF5Linux联盟
   好了,看起来似乎解决了问题。但当重新编译DLL后,大多数开发人员将会陷入另一种不兼容的境地。 UF5Linux联盟
UF5Linux联盟
   难道就没有更好的解决办法吗?我们暂时将这个问题放到一边! UF5Linux联盟
UF5Linux联盟
   您可访问下列站点以获得更多的内容: UF5Linux联盟
UF5Linux联盟
   www.PylonOfTheMonth.co.uk. Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·Visual Basic COM基础之事件  (2007-10-19 13:01:19)
 ·Visual Basic COM基础之更多属性  (2007-10-19 12:59:38)
 ·Visual Basic COM基础之属性  (2007-10-19 12:58:54)
 ·Visual Basic COM基础之类的建立  (2007-10-19 12:58:10)
 ·Visual Basic COM基础讲座  (2007-10-19 12:57:22)
 ·有关MySQL数据库与标准的兼容性问题  (2006-10-21 16:51:56)
 ·详解Linux操作系统设备驱动兼容性  (2006-10-12 11:03:00)
 ·MySQL中文参考手册:MySQL与标准的兼容性  (2005-12-13 09:20:16)