IDL和ODL的主要区别是什么。我有很多项目,其中一些有 idl,其中一些有 odl。我应该在哪里使用它们。什么是权衡。
问问题
2973 次
3 回答
8
ODL 是一种传统格式。它已被 MIDL(又名:IDL)取代。查看这篇微软官方文章: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 选项解决了这些差异:
于 2013-05-15T09:30:44.360 回答
0
odl 文件通常使用 Mktyplib.exe 解析,而 idl 使用 MIDL 编译器解析。但是,截至 2018 年 5 月,MIDL 现在还包括 ODL 的完整语法,即 MIDL 编译器可以解析 2 个输入文件中的任何一个:idl 或 odl。
于 2018-11-05T20:15:00.893 回答