在我工作的公司中,我们使用C#开发所有GUI,但应用程序内核主要是在Delphi 5中开发的(由于历史原因),在COM中制作了许多组件.与这个非常具体的应用相关,我有两个问题:
>在Delphi和/或COM中经验丰富的人,你有没有工作环境来处理错误的TLB接口?
一些错误是:IDE在大型TLB的编辑期间崩溃,丢失方法ID,TLB损坏等.
在这里,我们还没有找到任何好的解决方案.实际上我们尝试升级做新的2007版本.但是新的IDE TLB接口具有我们之前发现的相同错误.
>您如何控制TLB版本? TLB文件采用二进制格式,冲突解决方案很难做到.我们尝试将接口描述导出到IDL并提交到CVS中,但我们没有找到任何使用Delphi从IDL生成TLB的好方法.另外,Microsoft提供的MIDL工具没有正确解析我们从delphi导出的IDL文件.
解决方法
我想你应该好好看看Delphi 2009.
Delphi 2009对COM支持进行了更改,包括基于文本的二进制TLB文件替换.
您可以在Chris Bensen’s blog阅读更多内容.