Объект Interop выдает исключение, если в C++ открыты два сеанса приложений.

Я использую System::Runtime::InteropServices::Marshal::GetActiveObject(MyApplication); для инициализации моего объекта Interop. Когда я открываю два сеанса приложения и во втором сеансе вызываю функцию объекта взаимодействия, он выдает следующее исключение HRESULT 0x80010105:

введите здесь описание изображения

Есть ли способ использовать объект взаимодействия в двух сеансах отдельно?


person Fatema    schedule 02.07.2020    source источник
comment
Не уверен, что вы имеете в виду под сессией. Но все это зависит от вашего приложения, это не чисто проблема COM. RPC_E_SERVERFAULT, вероятно, означает, что ваш сервер вышел из строя, что может быть ошибкой и т. д. мы могли бы обойтись без дополнительной информации (например, воспроизводя код)   -  person Simon Mourier    schedule 02.07.2020
comment
@SimonMourier Под «сеансом» я подразумеваю два экземпляра приложения.   -  person Fatema    schedule 07.07.2020
comment
Если под двумя экземплярами приложения вы подразумеваете два процесса Windows, это совершенно не имеет значения для COM-клиента. Клиент просто подключается к объекту. Является ли этот объект сервером нового процесса или вторым, зависит от того, как приложение закодировано в отношении COM, как COM-сервер. Проблема, вероятно, на стороне вашего приложения, как оно было закодировано. Опять же, больше ничего нельзя сказать без какого-либо воспроизводящего кода.   -  person Simon Mourier    schedule 07.07.2020