OneScript icon indicating copy to clipboard operation
OneScript copied to clipboard

Возможность создания объектов COM напрямую из DLL

Open milkin-vl opened this issue 7 years ago • 6 comments

== Проблема При создании внешнего подключения к базе требуется использование библиотеки comcntrl.dll определенной версии. При создании такого объекта стандартным образом - мы регистрируем и запрашиваем COM объект у системы, но здесь просто куча моментов, когда что-то может пойти не так, учитывая, что установлено может быть несколько версий платформы + параллельное выполнение операций над ними, плюс различные заморочки с правами.

== Решение После нескольких лет мучений у себя в Обновляторе я перешёл на так называемое использование "com without registration". И забыл обо всех описанных выше проблемах.

Было бы просто волшебно прикрутить возможность создания ком-объекта напрямую из нужного dll, весь код у меня есть, причём на c# - нет только времени на то, чтобы разобраться и вкрутить это всё в архитектуру OneScript.

Если бы кто-то из авторов нашёл время, чтобы уделить внимание этой проблеме - я со свой стороны готов оказать любую посильную помощь.

milkin-vl avatar Feb 05 '18 06:02 milkin-vl

Ок, посильная помощь приветствуется. Дайте, пожалуйста, копипастабельный кусок кода, который демонстрирует "возможность создания ком-объекта напрямую из нужного dll"

EvilBeaver avatar Feb 05 '18 07:02 EvilBeaver

Отлично, что есть отклик :) Я сегодня подготовлю демо-проект этой возможности и приложу его сюда вместе классом обёрткой для загрузки.

milkin-vl avatar Feb 05 '18 07:02 milkin-vl

Готово. ComWithOutRegistraion.zip

milkin-vl avatar Feb 05 '18 08:02 milkin-vl

Ну теперь дело за малым - сделать пулреквест ;)

EvilBeaver avatar Feb 05 '18 09:02 EvilBeaver

Ну вот... :)

Хотел было начать отмазываться, насколько я занятой, чтобы въезжать в проект.

Но на самом деле знаю, что у вас времени ещё меньше, вам ведь тоже надо на что-то жить, плюс разработка OneScript на уровне opensource. Я представляю сколько времени тратится на проект, ведь писать работающий код, и писать код, который можно выкладывать в opensource и развивать сообществом - это, как известно, две большие разницы.

Поэтому, если до конца года никто из авторов за эту фичу не возьмётся - будет от меня пулреквест, как только я снова вспомню, как было бы хорошо иметь эту возможность в OneScript, а пока, наконец, сделаю то, что реально могу сделать прямо сейчас - пожертвую некоторую сумму на инфраструктуру проекта (я знаю, что обычно все просят возможность делать донат, но затем пожертвования почти никто не делает, сам проходил уже этот этап с Обновлятором).

milkin-vl avatar Feb 05 '18 09:02 milkin-vl

Нуу после доната как-то неловко теперь не делать :)

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

EvilBeaver avatar Feb 05 '18 16:02 EvilBeaver