在Delphi中重命名DLL

时间:2012-01-30 08:35:34

标签: delphi dll com activex rename

假设我有一个用Delphi编写的大型ActiveX库,我们称之为 Lib1.dll 。它包含多个接口。任务是以这种方式将库重命名为 Lib2.dll ,另一个应用程序可以同时从Lib1和Lib2调用这两个方法。 我想以下一种方式做到这一点:

  1. 将Delphi项目重命名为Lib2(将重命名该库)。
  2. 将* Lib1_TLB.pas *文件替换为* Lib2_TLB.pas *,内容相同但接口和coclasses的新GUID。
  3. 将新GUID粘贴到 Lib2.ridl
  4. 从该ridl生成新的 Lib2.tlb 文件,这应该没问题。
  5. 但事实并非如此。我收到Delphi错误“无法找到Lib1.ridl文件”。好的,将ridl和tlb.pas重命名为Lib1,编译和构建正常,但注册ActiveX服务器会崩溃IDE。 请建议我重命名lib的方法或如何使我当前的进度工作。

1 个答案:

答案 0 :(得分:0)

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