Разница между идл и одл

В чем главное отличие IDL и ODL. У меня много проектов, некоторые из них имеют idl, а некоторые имеют odl. И где я должен их использовать. Каковы компромиссы.

5

Решение

ODL — это устаревший формат. Он был заменен на MIDL (a.k.a: IDL). Проверьте эту официальную статью Microsoft: MIDL и ODL

Язык определения интерфейса Microsoft (MIDL) теперь включает в себя
полный синтаксис языка определения объектов (ODL).

Теперь, если у вас есть файлы ODL, вы можете оставить их как есть или перенести их в IDL. Это было бы рекомендуемым решением, но оно может быть подвержено ошибкам. Это очень связано с инструментом, который вы сейчас используете для создания из него сгенерированных файлов, MIDL.exe или MkTypeLib.exe. Проверьте еще раз официальную документацию об этом: Различия между MIDL и MkTypLib

В общем, вы захотите использовать синтаксис MIDL в ваших файлах IDL.
Однако, если вам нужно скомпилировать существующий файл ODL или иным образом
поддерживать совместимость с MkTypLib, использовать / mktyplib203 MIDL
опция компилятора, чтобы заставить MIDL вести себя как Mkktyplib.exe, версия
2,03. (Это последний выпуск инструмента MkTypLib.) В частности, параметр / mktyplib203 устраняет следующие различия:

8

Другие решения

ODL является аббревиатурой от Язык описания объекта и IDL это Язык определения интерфейса.

Язык описания объекта (ODL) был оригинал интерфейс
язык определения
созданный Microsoft для определения интерфейсов
использоваться в OLE Automation. Это был надмножество OMG IDL

Если вы хотите описать объект, очевидно, что ODL — лучший инструмент, то вам нужно разработать объектно-ориентированный или ориентированный на интерфейс (функциональный) объект.

2

Файл odl обычно анализируется с помощью Mktyplib.exe, а idl — с помощью компилятора MIDL. Но с мая 2018 года MIDL теперь включает полный синтаксис для ODL, то есть, компилятор MIDL может анализировать любой из 2 входных файлов: idl или odl.

0
По вопросам рекламы [email protected]