Вот именно, что Lers Framework это не просто карта функций. Это набор взаимодействующих объектов, коллекций элементов, события, асинхронные методы и сериализация, которая выполняется через .NET Reflection. Преобразование всего этого на C++ это не простая конвертация данных и типов. Это коренная переработка всей архитектуры. Причём не только Lers Framework, но и нашего веб-интерфейса, клиента и сервера.
На C++ можно написать подобную библиотеку. Это огромные трудозатраты. Даже если мы полностью остановим развитие ЛЭРС УЧЁТ и займёмся такой переработкой, на это уйдут месяцы и годы. Но даже такая платфоменная библиотека не будет взаимодействовать со всеми инструментами. Её можно будет использовать только из проектов C++ как набор lib-файлов и подключаемых h-заголовков.
Ближайшая технология, которая обеспечивает подобную совместимость - ActiveX. Lers Framework “вырос” именно из такой ActiveX библиотеки, которая называлась “Библиотека автоматизации”. Поддержка её в конце концов стала настолько трудоёмкой, что нам пришлось от неё отказаться.
В итоге, родилась концепция Lers Framework, который не просто поддерживается как отдельный продукт, но является ядром для разработки всей системы. Это сильно упростило его поддержку и дала мощный толчок в его развитии.
В итоге, от Lers Framework в текущем его виде мы отказаться не можем. Он является основой развития ЛЭРС УЧЁТ и неплохо решает большинство задач по интеграции с другими системами. А на развитие и поддержку в актуальном состоянии C++ или ActiveX библиотеки у нас сейчас просто не хватит ресурсов.
Более реалистичным кажется вариант ActiveX библиотеки, которая основана на Lers Framework и написана на .NET с помощью COM-Visible классов. Однако ограничения технологии COM-Visible рано или поздно заставят нас от неё отказаться, поскольку поддержка в актуальном состоянии и фреймворка и библиотеки - задача не самая простая.
В заключение, про интеграцию со SCADA. В большинстве случаев для этого достаточно технологии OPC (которая, кстати, базируется как раз на COM).
Уже существуют .NET-библиотеки для упрощения создания OPC-серверов, поэтому при необходимости мы сможем реализовать нужные для OPС-функции. Это будет далеко не вся функциональность нашего фреймворка, но для интеграции со скадами должно хватить.