idl和odl之间的区别

fhn*_*eer 5 c++ com idl

IDL和ODL的主要区别是什么.我有很多项目,其中一些有idl,其中一些有odl.我应该在哪里使用它们.什么是权衡.

Sim*_*ier 8

ODL是一种传统格式.它已被MIDL(又名:IDL)取代.查看Microsoft官方文章:MIDL和ODL

Microsoft接口定义语言(MIDL)现在包括完整的对象定义语言(ODL)语法.

现在,如果您有ODL文件,您可以保持原样,或将它们迁移到IDL.这将是推荐的解决方案,但它可能容易出错.它与您用来构建生成的文件,MIDL.exe或MkTypeLib.exe的工具非常相关.再次检查有关这些的官方文档:MIDL和MkTypLib之间的差异

通常,您需要在IDL文件中使用MIDL语法.但是,如果您需要编译现有的ODL文件,或者保持与MkTypLib的兼容性,请使用/ mktyplib203 MIDL编译器选项强制MIDL的行为类似于Mkktyplib.exe,版本2.03.(这是MkTypLib工具的最后一个版本.)具体来说,/ mktyplib203选项解决了这些差异: