我需要一本白痴指南,介绍如何使用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吗?
答案 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;