我可以在 Inno Setup 中一次注册多个 *.tlb 文件吗?
Can I register multiple *.tlb files at once in Inno Setup?
当我尝试使用通配符注册所有 *.tlb 文件时:
RegisterTypeLibrary(Is64BitInstallMode, ExpandConstant('{app}') + '\TLB\*.tlb');
我收到运行时错误 0x80029C4A。
是不是说我必须一个一个地注册所有的文件?有没有办法注册文件夹?
您不能使用通配符注册 .tlb 文件。见 documentation:
Prototype: procedure RegisterTypeLibrary(const Is64Bit: Boolean; const
Filename: String);
例如RegisterTypeLibrary(Is64BitInstallMode, ExpandConstant('{sys}\stdole2.tlb'));
同时检查正确的平台:Is64BitInstallMode() 与 .tlb 位数无关(您可以在 64 位系统上注册 32 位 .tlb 没有任何问题。
如果您尝试为不正确的平台注册库,则会显示异常,这可能是您的问题。
- 额外提示:尝试运行安装程序为管理员,通常库必须以管理员模式注册。
当我尝试使用通配符注册所有 *.tlb 文件时:
RegisterTypeLibrary(Is64BitInstallMode, ExpandConstant('{app}') + '\TLB\*.tlb');
我收到运行时错误 0x80029C4A。
是不是说我必须一个一个地注册所有的文件?有没有办法注册文件夹?
您不能使用通配符注册 .tlb 文件。见 documentation:
Prototype: procedure RegisterTypeLibrary(const Is64Bit: Boolean; const Filename: String);
例如RegisterTypeLibrary(Is64BitInstallMode, ExpandConstant('{sys}\stdole2.tlb'));
同时检查正确的平台:Is64BitInstallMode() 与 .tlb 位数无关(您可以在 64 位系统上注册 32 位 .tlb 没有任何问题。
如果您尝试为不正确的平台注册库,则会显示异常,这可能是您的问题。
- 额外提示:尝试运行安装程序为管理员,通常库必须以管理员模式注册。