Возможность создания объектов COM напрямую из DLL
== Проблема При создании внешнего подключения к базе требуется использование библиотеки comcntrl.dll определенной версии. При создании такого объекта стандартным образом - мы регистрируем и запрашиваем COM объект у системы, но здесь просто куча моментов, когда что-то может пойти не так, учитывая, что установлено может быть несколько версий платформы + параллельное выполнение операций над ними, плюс различные заморочки с правами.
== Решение После нескольких лет мучений у себя в Обновляторе я перешёл на так называемое использование "com without registration". И забыл обо всех описанных выше проблемах.
Было бы просто волшебно прикрутить возможность создания ком-объекта напрямую из нужного dll, весь код у меня есть, причём на c# - нет только времени на то, чтобы разобраться и вкрутить это всё в архитектуру OneScript.
Если бы кто-то из авторов нашёл время, чтобы уделить внимание этой проблеме - я со свой стороны готов оказать любую посильную помощь.
Ок, посильная помощь приветствуется. Дайте, пожалуйста, копипастабельный кусок кода, который демонстрирует "возможность создания ком-объекта напрямую из нужного dll"
Отлично, что есть отклик :) Я сегодня подготовлю демо-проект этой возможности и приложу его сюда вместе классом обёрткой для загрузки.
Готово. ComWithOutRegistraion.zip
Ну теперь дело за малым - сделать пулреквест ;)
Ну вот... :)
Хотел было начать отмазываться, насколько я занятой, чтобы въезжать в проект.
Но на самом деле знаю, что у вас времени ещё меньше, вам ведь тоже надо на что-то жить, плюс разработка OneScript на уровне opensource. Я представляю сколько времени тратится на проект, ведь писать работающий код, и писать код, который можно выкладывать в opensource и развивать сообществом - это, как известно, две большие разницы.
Поэтому, если до конца года никто из авторов за эту фичу не возьмётся - будет от меня пулреквест, как только я снова вспомню, как было бы хорошо иметь эту возможность в OneScript, а пока, наконец, сделаю то, что реально могу сделать прямо сейчас - пожертвую некоторую сумму на инфраструктуру проекта (я знаю, что обычно все просят возможность делать донат, но затем пожертвования почти никто не делает, сам проходил уже этот этап с Обновлятором).
Нуу после доната как-то неловко теперь не делать :)
Я и в первый раз не отказался, просто думал может мотивирую как-нибудь.