Я использую 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, если он уже существует, - но я не могу найти правильный способ справиться с этим.
Есть предложения?