winapi — управление версиями C ++ COM \ DCOM

Это может быть очень старая проблема, но я действительно расстраиваюсь из-за некоторых проблем с API.

Я использую API-интерфейс некоторых приложений для настольных компьютеров, версия которых меняется каждый месяц с новой функцией.
Давайте рассмотрим следующий сценарий,
Компания ABC LTD представляет одно оконное приложение ABCPRO, теперь, когда они представляют его, у них нет поддержки com, то есть в версии 1.0.0.0 ABCPRO не имеет com API.
Сейчас компания развивается и представляет новую версию ABCPRO 1.0.0.1, даже в этой версии они не поддерживают com. После нескольких бета-версий ABCPRO в 1. * они наконец-то представили поддержку для ABCPRO в версии 2.0.0.0.

Теперь нам приятно получить ABCPRO API и выполнить некоторые функции. С версией 2.0.0.0 все отлично работает.

Теперь в версии 2.0.0.1 они вводят еще одну функцию, скажем, LMN, которая нам полезна. Поэтому мы удаляем ABCPRO 2.0.0.0 и устанавливаем ABCPRO 2.0.0.1. Это прекрасно работает для всех наших клиентов 2.0.0.1, но происходит сбой, когда наш клиент имеет ABCPRO 2.0.0.0 Итак, мой исполняемый файл вылетает на машине, где присутствует ABCPRO 2.0.0.0, потому что я разрабатываю исполняемый файл с использованием 2.0.0.1.

Итак, как выйти из этой проблемы управления версиями, потому что я знаю, что во многих версиях ABCPRO будет представлена ​​функция, которая нам нужна, но как насчет всех старых версий ?????

Следующий код может очистить вас.

int main()
{
IABCPROAPI ABCPRO;
VARIANT var;
ABCPRO->GetNameOfServer(&Var);
VARIANT LMNVar;
ABCPRO->GetLMN(&LMNVar);             //This introduce in version 2.0.0.1
}

РЕДАКТИРОВАТЬ:-

Как узнать версию исполняемого файла в C ++ ??

Или попробовать поймать может быть полезно ??

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]