0

当我尝试使用通配符注册所有 *.tlb 文件时:

RegisterTypeLibrary(Is64BitInstallMode, ExpandConstant('{app}') + '\TLB\*.tlb');

我收到运行时错误 0x80029C4A。

这是否意味着我必须将所有文件一一注册?有没有办法注册文件夹?

4

1 回答 1

1

您不能使用通配符来注册 .tlb 文件。请参阅文档

原型:procedure RegisterTypeLibrary(const Is64Bit: Boolean; const Filename: String);

例如RegisterTypeLibrary(Is64BitInstallMode, ExpandConstant('{sys}\stdole2.tlb'));

还要检查正确的平台:Is64BitInstallMode()与 .tlb 位无关(您可以在 64 位系统上注册 32 位 .tlb 没有任何问题。

如果您尝试为不正确的平台注册库,则会显示异常,这可能是您的问题。

  • 额外提示:尝试以管理员身份运行安装程序,通常这些库必须以管理员模式注册。
于 2020-03-20T14:04:31.243 回答