【发布时间】:2010-10-04 23:48:33
【问题描述】:
我正在使用 C#.NET 来启动和控制 Delphi 编写的可执行文件。 Delphi 应用程序有一个 COM 接口。
我已将 Delphi 可执行文件(我们将其称为 DelphiApp.exe)作为资源导入 Visual Studio。
以下 C# 代码有效 -- 如果没有其他 DelphiApp.exe 实例正在运行:
DelphiApp.DelphiAppClass da = new DelphiAppClass();
da.DoStuff(1, 3, 4);
如果 DelphiApp.exe 的一个实例正在运行,上面的代码将“接管”其中一个实例,这不是我想要的。当我声明一个新的DelphiAppClass() 时,我总是希望它是一个新的应用程序实例。
我已经尝试了几种解决方法——比如如果已经存在一个新的 DelphiApp 进程,则启动一个新的进程——但我似乎找不到处理这个问题的正确方法。
有什么建议吗?
【问题讨论】:
-
你能发布(部分)DelphiApp COM 类单元吗?
-
你是这个意思吗? TTypedComObjectFactory.Create(ComServer, TDelphiApp, Class_DelphiApp, ciSingleInstance, tmSingle);
标签: c# .net delphi com interop