在Delphi中重命名DLL

3
假设我有一个用 Delphi 编写的大型 ActiveX 库,叫做 Lib1.dll。它包含多个接口。任务是以这样的方式将库重命名为 Lib2.dll,以便另一个应用程序可以同时调用 Lib1 和 Lib2 的方法。 我想按照以下方式完成:
  1. 将 Delphi 项目重命名为 Lib2(这将重命名库)。
  2. 使用与 Lib2_TLB.pas 相同的内容替换 *Lib1_TLB.pas* 文件,但使用新的接口和 coclass 的 GUIDs。
  3. 将新的 GUIDs 复制到 Lib2.ridl
  4. 从那个 ridl 生成新的 Lib2.tlb 文件,然后就可以了。
但事实并非如此。我收到了 Delphi 错误“找不到 Lib1.ridl 文件”。好吧,将 ridl 和 tlb.pas 都改回 Lib1,编译和构建都没问题,但注册 ActiveX 服务器会导致 IDE 崩溃。 请告诉我如何重命名库或如何使我的当前进度工作。

4
为什么您想要拥有两个相同的ActiveX库和两个相同的类型库呢?我认为您只是想通过COM类工厂创建接口的实例,例如请参见这里 - TLama
1个回答

0

我假设您正在使用最新版本的Delphi,使用.ridl文件处理COM接口,因此请记住它是处理COM的中心单元。您可以从Lib1.ridl复制并重命名ridl文件到Lib2.ridl。然后,在Lib2.ridl中(而不是自动重新创建的_TLB.pas文件)重新生成库的GUID和coclasses的GUID。接口可能保持不变。之后,您应该能够生成tlb并刷新_TLB.pas,最后构建并注册新库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接