如何在Delphi项目中拥有多个类型库?

如何在Delphi项目中拥有多个类型库?,delphi,com,delphi-xe,typelib,Delphi,Com,Delphi Xe,Typelib,如果您有一个Delphi项目,并且希望向其中添加一个类型库,那么您可以非常轻松地完成它 但是,我们希望能够添加多个不同类型的库。DelphiXeIDE似乎迫使您拥有一个且只有一个名为 MyProject.tlb 我希望在我们的主项目中能够有多个类型库,并且可以做COM插件,但是我不想要一个单一的类型库,而是要为各种不同类型的插件提供多个类型库 这可行吗?是否只有IDE强制执行“只能有一个TLB”规则?您肯定可以。在二进制文件的最终编译过程中,类型lib被视为另一个资源 听起来您的IDE将您限制

如果您有一个Delphi项目,并且希望向其中添加一个类型库,那么您可以非常轻松地完成它

但是,我们希望能够添加多个不同类型的库。DelphiXeIDE似乎迫使您拥有一个且只有一个名为

MyProject.tlb
我希望在我们的主项目中能够有多个类型库,并且可以做COM插件,但是我不想要一个单一的类型库,而是要为各种不同类型的插件提供多个类型库


这可行吗?是否只有IDE强制执行“只能有一个TLB”规则?

您肯定可以。在二进制文件的最终编译过程中,类型lib被视为另一个资源

听起来您的IDE将您限制为一个类型库。如果可以编辑原始.RC文件,则可以在其中包含对.tlb的引用

例如,从.RC文件的textclude部分

3 TEXTINCLUDE  
BEGIN
    "1 TYPELIB ""junk.tlb""\r\n"
    "\0"
END

4 TEXTINCLUDE  
BEGIN
    "2 TYPELIB ""junk2.tlb""\r\n"
    "\0"
END
资源编译器应将其作为第二个TYPELIB资源包含。我只是手工操作,没有使用Visual Studio提供的支持

一旦我编译了我的EXE,我打开它并查看资源。有两种类型的lib


我希望这有帮助。

好吧,IDE不支持一个项目中的多个类型库。但是,您可以创建单独的外部类型库(文件>新建>其他>Delphi项目>活动>类型库)来创建独立的.tlb文件,在操作系统中注册它们,然后根据需要在项目的类型库中引用它们

但是,如果您所做的只是创建主项目使用的COM插件,那么就没有必要在主项目中包含COM插件类型库。您所需要的只是接口定义。只需将生成的
\u TLB.pas
单元添加到主项目的
uses
子句中即可。不要将实际的.tlb文件本身添加到主项目中