调用 Delphi DCOM
Call Delphi DCOM
我对 Delphi 和 DCOM 完全陌生。我被分配了修改旧 Delphi 项目的任务。我能够进行更改并构建 .exe。我正在使用 Delphi 7 IDE.
出于某种原因,我们需要在同一台服务器上同时安装旧版本和新版本 运行。
我做的是,构建新版本,我们称之为delphiapp_original.exe
,重命名为delphiapp_new.exe
。我们 运行 应用程序的方式是这样的:
callerapp delphiapp_original.ObjA
callerapp
是另一个调用 Delphi DCOM 对象的应用程序。
我的问题是如何 运行 我的新 Delphi 应用程序。是:
callerapp delphiapp_new.ObjA
我知道我的问题听起来很愚蠢,但我没有测试环境所以无法尝试该命令。我问的另一个原因是我不确定上面命令行中的 delphiapp_original
或 delphiapp_new
是 exe 的名称还是 exe 中某些 class/object 的名称。如果它们是 exe 的名称就好了,这样会调用不同的 DCOM 对象。但是如果上面命令行中的delphiapp_original
或delphiapp_new
是exe里面的class/object的名字,那就麻烦了,因为我只是重命名了exe,旧exe里面的东西和新的exe保持相同的名称,我不知道调用了哪个对象。
如您所料,仅重命名 EXE 文件是不够的。您必须编辑项目的类型库以更改它定义的 COM 对象的 GUID/ProgID。然后你可以编译一个新版本的 EXE 文件和 运行 它以便它的 COM 对象使用它们的新 GUID(s)/ProgID(s) 重新注册。届时,新旧版本将可以在同一台PC上以不同的名称共存。
我对 Delphi 和 DCOM 完全陌生。我被分配了修改旧 Delphi 项目的任务。我能够进行更改并构建 .exe。我正在使用 Delphi 7 IDE.
出于某种原因,我们需要在同一台服务器上同时安装旧版本和新版本 运行。
我做的是,构建新版本,我们称之为delphiapp_original.exe
,重命名为delphiapp_new.exe
。我们 运行 应用程序的方式是这样的:
callerapp delphiapp_original.ObjA
callerapp
是另一个调用 Delphi DCOM 对象的应用程序。
我的问题是如何 运行 我的新 Delphi 应用程序。是:
callerapp delphiapp_new.ObjA
我知道我的问题听起来很愚蠢,但我没有测试环境所以无法尝试该命令。我问的另一个原因是我不确定上面命令行中的 delphiapp_original
或 delphiapp_new
是 exe 的名称还是 exe 中某些 class/object 的名称。如果它们是 exe 的名称就好了,这样会调用不同的 DCOM 对象。但是如果上面命令行中的delphiapp_original
或delphiapp_new
是exe里面的class/object的名字,那就麻烦了,因为我只是重命名了exe,旧exe里面的东西和新的exe保持相同的名称,我不知道调用了哪个对象。
如您所料,仅重命名 EXE 文件是不够的。您必须编辑项目的类型库以更改它定义的 COM 对象的 GUID/ProgID。然后你可以编译一个新版本的 EXE 文件和 运行 它以便它的 COM 对象使用它们的新 GUID(s)/ProgID(s) 重新注册。届时,新旧版本将可以在同一台PC上以不同的名称共存。