The COM Course - Part 3--By Karl Moore (转)

本文探讨了在重新编译ActiveX DLL时遇到的兼容性问题,并详细解释了如何通过设置Binary Compatibility选项来确保现有应用程序不受影响。此外,还介绍了如何在Visual Basic中设置不同兼容性选项的方法。
The COM Course - Part 3--By Karl Moore (转)[@more@]w3c//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> words" content="com, course, activex, compatibility, database, class,, Visual Basic,vb,visual,basic, win32,vb4,vb5, vb6,visual basic,vb,visual,basic,win32,vb4,vb5,vb6"> tips on how you can take your knowledge to the next level. Top notch stuff."> top_left.gifRM method="GET" action="/ PHP-bin/searchredir.php"> Search VB-World:    < select name="whereto">All VB-World vb ForumsThe web    home_off.gif articles_on.gif code_off.gif projects_off.gif books_off.gif reviews_off.gif discuss_off.gif .NETwork links --&gt > VBForums.com
> VBSquare.com
> api.com"> VBAPI.com .network links --&gt top_right.gif clear.gif clear.gif  Home  > ActiveX Development > Articles clear.gif clear.gif clear.gif clear.gif clear.gif clear.gif clear.gif clear.gif ea%20href=Mail_button.gif" width="16" height="16" border="0"> email this page print_button.gif Printer Friendly more_button.gif More From Karl feea%20href= dback_button.gif" width="16" height="16" border="0"> Post Feedback
Related
The COM Course - Part 3 The COM Course - Part 2 The COM Course - Part 1 ActiveX Control Tutorial - Part 5 ActiveX Control Tutorial - Part 4
Hot Picks
vb.net Uncovered: Big Changes VB.NET Uncovered: Working the Web Control the Panel Kill Context Learn to Program with Visual Basic 6

The COM Course - Part 3

By Karl Moore

Compatibility

At the end of last week, we stumbled across a small problem. Well, rather a big problem actually.

In fact, if you've got time, it was a whopping great huge problem wearing high heels, a frilly skirt and holding a massive sign stating "I am a BIG problem!".

You see - we compiled our ActiveX DLL, then compiled a test program that used our DLL. Then we recompiled our DLL ?something you usually do after you make changes. Suddenly, our test program no longer worked. Damn.

If we had then recompiled our test program, it would've worked. But let's say your VB program, an excel spreadsheet and one C++ accounts package all use your DLL. Do they all need to be 'recompiled' every time you make a small change to your ActiveX DLL?

The answer is, thankfully, no.

The reason we experienced problems last week was due to an issue known as compatibility. Or rather, a lack of it.

  • Open up your Northwind project in Visual Basic
  • Click 'Project', 'Northwind Properties'
  • Click the 'Component' tab

image1.gif

Take a peek at the 'Version Compatibility' frame in front of you. Here we have three options. Let's explain these now:

No Compatibility ?With every compile, your COM component gets assigned a new 'signature'. This means programs looking for older 'signatures' (the previous version of the DLL) ?simply flop Project Compatibility ?With every compile, your COM component is assigned a new signature ?and still, any using-applications still flop. The only change here is that 'big' differences between your current project and a previous DLL project are highlighted as you compile. Ohhh, wh oop-de-doo Binary Compatibility ?When compiled, your application attempts to keep the signature of a previously compiled DLL, thus ensuring any applications using it don't magically turn into the Blue Screen of Death. However if the differences between your previously compiled DLL and your to-be-compiled DLL are too great, a new signature must be assigned

So let's test our theory:

  • Open last week's test application
  • Recompile it
  • Trial run your test application ?it should work
  • Open our ActiveX DLL project
  • Set the Binary Compatibility option
  • Recompile your DLL
  • Attempt to run your test application ?it should still work

Hurrah! It may sounds like complete hogwash, but when recompiling their DLLs, most developers get themselves into an awfully incompatible situation.

But hopefully you won't ?all thanks to this small aside.

Well, that's compatibility for you. About as exciting as www.PylonOfTheMonth.co.uk.

prev.gifIntroduction

ActiveX EXEs next.gif

clear.gif clear.gif clear.gif  In This Article clear.gif clear.gif clear.gif

Introduction - Compatibility - ActiveX EXEs - Creating a Test ActiveX EXE - Instancing - Creating a Test Application - Distributing Components - Where to Go from Here - Conclusion -

ActiveX | Beginning | Controls | Databases | Files | Graphics | Misc | Mouse | Registry
Home | Articles | Code | Projects | Books | Reviews | Discussion Forums
Tech News | Contact Us | Site Map | Join Newsletter | Link To Us
clear.gif bot_left.gif Copyright ©1997-2001 Jelsoft Enterprises Limited. All rights reserved. Privacy Policy. bot_right.gif

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-991797/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-991797/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值