2012-06-21 3 views
2

Мне нужно руководство для идиотов о том, как использовать интерфейс IMultiLanguage2 от Delphi XE2 с 32-разрядными приложениями VCL.Как использовать IMultiLanguage2 в Delphi XE2?

До сих пор я обнаружил, что MLANG.IDL в RAD Studio включает в себя папку \ windows \ sdk \ idl и проверяет, что моя ОС имеет файл mlang.dll в SysWOW64.

Мне также удалось создать файл MLANG.TLB с помощью MIDL.exe на MLANG.IDL (мне нужен этот шаг?), Но я не могу импортировать TLB в XE2, потому что он не отображается в списке «зарегистрированных» , Я также не хочу пытаться зарегистрировать его, потому что я не хочу создавать зависимость от других, чем mlang.dll. TLIBImp не откроет файл mlang.dll.

Я смотрел GenTLB (который не открывает MLANG.IDL) и читал много Docwiki EMB при использовании библиотек типов, включая инструкцию «Библиотеки типов в RAD Studio использовать RIDL вместо IDL». Какова цель огромной папки IDL-файлов, установленных с XE2? Так как они находятся в папке include, они предназначены только для использования с C++, а не для Delphi?

ответ

4

Если у вас уже есть библиотека типов в двоичном формате .tlb, вы можете импортировать ее, нажав кнопку «Добавить» в диалоговом окне «Импортировать компонент» - это позволит вам просматривать файл .tlb и генерировать Delphi единица с декларациями.

В качестве альтернативы, вы можете использовать инструмент tlibimp командной строки, например .:

tlibimp -P mlang.tlb 

Быстрый пример использования:

uses 
    MultiLanguage_TLB; 

var 
    M: IMultiLanguage2; 
    C: Cardinal; 
begin 
    M := CreateComObject(CLASS_CMultiLanguage) as IMultiLanguage2; 
    OleCheck(M.GetNumberOfCodePageInfo(C)); 
    ShowMessage(Format('GetNumberOfCodePageInfo: %d', [C])); 
end; 
+0

Спасибо, что звучал легко, и я должен был замечен на кнопку Добавить! Но, к сожалению, при попытке загрузить mlang.tlb просто появляется сообщение «Ошибка доступа к реестру OLE». Я подозреваю, что, возможно, я не выбрал правильные варианты для MIDL при его создании. Нет ли способа перейти от IDL к TLB с помощью инструментов, которые поставляются с Delphi? – frogb

+0

Да, я также получил сообщение об ошибке из диалогового окна. Попробуйте tlibimp, это сработало для меня. –

+0

TLIBIMP на TLB? Это тоже не удалось. Но теперь это работает! Я буду нажимать на ... – frogb

Смежные вопросы