还记得我们是怎样遇到那个问题吗?当时,我们先编译ActiveXDLL,然后编译使用该DLL的测试程序。接着,我们重新编译DLL,那是因为假设DLL中的内容需要修改。然而,再运行测试程序时,却出现错误!
![]() |
![]() |
![]() |
|
|
||||||||||||
是的,肯定不能这样。 因为经验告诉我们,这是一个兼容性问题。所以,可以这样处理: 启动VisualBasic,打开Northwind工程; 选择"Project"->"NorthwindProperties"菜单; 单击"Component"标签; 浏览一下"VersionCompatibility"的页面内容,可以发现有三个选项。现解释一下: NoCompatibility——每次编译时,用户COM组件都被标有一个新的标记,这就意味着程序只能使用旧标记(以前版本)的DLL。 ProjectCompatibility——每次编译时,用户COM组件不是总会被标有一个新的标记。如果是的话,任何当前使用的应用程序都会失败。事实上,只有当当前工程和已经编译过的DLL工程有较大不同时才会这样。 BinaryCompatibility——每次编译时,应用程序总试图保存前一个编译过的DLL标记,这样就确保了使用的应用程序不会出现蓝屏的死机现象。但是,若当前将要编译的DLL和以前编译过的DLL区别太大,则新的标记就会被标上。 让我们测试一下上述论点: 打开本教程上一部分的测试程序; 重新编译一下; 试运行一下,应该能正常工作; 打开ActiveXDLL工程; 将其属性设置为BinaryCompatibility; 重新编译一下该DLL; 试运行一下测试程序,应该能正常工作。 好了,看起来似乎解决了问题。但当重新编译DLL后,大多数开发人员将会陷入另一种不兼容的境地。 难道就没有更好的解决办法吗?我们暂时将这个问题放到一边! 您可访问下列站点以获得更多的内容: www.PylonOfTheMonth.co.uk.-> 文章整理:站长天空 网址:http://www.z6688.com/ 以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
||
|
|
|
|
||
|
|
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
![]()
|
||||||||||||||||||||||||||||||
|
|