The COM Course - Part 3--By Karl Moore
来源:互联网 发布:unity3d 开发数据库 编辑:程序博客网 时间:2024/04/30 08:47
> VBSquare.com
> VBAPI.com Home > ActiveX Development > Articles
Email this page | |
Printer Friendly | |
More From Karl | |
Post Feedback |
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 |
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
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, whoop-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.
Introduction
ActiveX EXEs
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 | RegistryHome | Articles | Code | Projects | Books | Reviews | Discussion Forums
Tech News | Contact Us | Site Map | Join Newsletter | Link To UsCopyright ©1997-2001 Jelsoft Enterprises Limited. All rights reserved. Privacy Policy.
- The COM Course - Part 3--By Karl Moore
- The COM Course - Part 2--By Karl Moore
- The COM Course - Part 1--by karl moore
- 【checkio】the Moore neighbourhood
- The principles of service-orientation part 3 of 6: Service abstraction and reuse [by Thomas Erl]
- [Clojure] Data Collection and Data Analysis on the music of www.xiami.com - Part 3
- http://code4app.com/course
- Get data by SAFEARRAY** from COM(VB Code) in My VC COM Project (Code Part)
- Statistical Data Mining Tutorials by Andrew Moore
- Drupal line by line : part 3
- Bad Medicine, Part 3: Death by Diagnosis
- About the course
- Of course the same
- Opening Doors: Notes On the Delphi ToolsAPI by its Creator - Part 2 - by Allen Bauer
- Introduction to COM Part II - Behind the Scenes of a COM Server
- Sandbox Evasion with COM by Malware in-the-Wild
- Andrew Moore CMU machine learning Notes(ML part)
- The Boyer-Moore Majority Vote Algorithm
- 读书笔记:RUP
- 两个动态链接库(MFC扩展库)及其测试程序的例子(含源代码)
- 存储过程入门与提高
- JDBC2.0實現數據分頁
- Cracker初步:手动清除恶意网页代码
- The COM Course - Part 3--By Karl Moore
- The COM Course - Part 2--By Karl Moore
- The COM Course - Part 1--by karl moore
- 《Essential C++ 中文版》读书感悟--正确的观念重于一切
- 16-Bit Pixels (翻译)
- befriending a template in another namespace
- Herb Sutter 又要出新书--《Exceptional C++ Style》啦!
- 可输入的select
- 国际网页Web设计流程