如何在Delphi XE2中使用IMultiLanguage2?

时间:2012-06-21 12:00:29

标签: delphi idl

我需要一本白痴指南,介绍如何使用Delphi XE2的IMultiLanguage2接口,以及32位VCL应用程序。

到目前为止,我发现RAD Studio中的MLANG.IDL包含\ windows \ sdk \ idl文件夹,并验证我的操作系统在SysWOW64中有mlang.dll文件。

我还设法在MLANG.IDL上使用MIDL.exe创建一个MLANG.TLB文件(我需要这个步骤吗?)但是我无法将TLB导入XE2,因为它没有出现在“已注册”列表中。我也不想尝试注册它,因为我不想创建除mlang.dll以外的依赖项。 TLibImp不会打开mlang.dll。

我查看了GenTLB(它没有打开MLANG.IDL)并阅读了很多关于使用类型库的EMB Docwiki,包括语句“RAD Studio上的类型库使用RIDL而不是IDL”。与XE2一起安装的大型IDL文件夹的目的是什么呢?因为它们在include文件夹中,它们只用于C ++而不用于Delphi吗?

1 个答案:

答案 0 :(得分: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;