При решении одной задачи столкнулся с трудностью, в 64-разрядной версии Windows 8.1 никак не получалось зарегистрировать библиотеку dynwrap.dll.
Благо нашел отличную разработку от Юрия Попова
DynamicWrapperX 2.2
Распространяется с согласия автора абсолютно бесплатно.
Лицензия: freeware.
Корректно работает в том числе под 64-разрядной Windows 10.
Версия 2.2 тестировалась под Windows XP SP3, Windows 7 SP2, Windows 8.1, Windows 10.
Версия 1.0 работает под Windows 98.
Нововведения в версии 1.0.0.0 по отношению к DynamicWrapper:
- Добавлена возможность регистрации компонента в системе для текущего пользователя. Это может пригодиться, если у пользователя нет прав администратора.
- Расширен набор типов входных параметров и возвращаемых значений.
- Добавлены выходные параметры.
- Унифицирована работа со строками в JScript и VBScript.
- Реализован обратный вызов (callback), т.е. возможность для функций API в свою очередь вызывать функции скрипта. Последнее нужно для использования таких API-функций, как EnumWindows.
- Под Windows 98 отпала необходимость создавать отдельный объект для каждой используемой функции.
- Добавлены методы NumGet, NumPut, StrPtr, StrGet, Space.
Изменения в версии 2 по отношению к версии 1:
- Компонент не тестировался под Windows 98 и официально её не поддерживает.
- Доступны два варианта: x86 и x64.
- Изменён CLSID компонента.
- При установке и удалении проверяется наличие 1-й версии; дальнейшее зависит от результатов проверки (см. раздел Регистрация в системе).
- Расширен набор типов параметров и возвращаемых значений: добавлены типы m (Int64), q (UInt64), v (VARIANT).
- Количество callback-функций теперь неограничено.
- Расширены возможности метода Register (регистрация функции по ординалу, регистрация под другим именем, добавлен флаговый параметр "f=").
- Добавлены встроенные методы RegisterAddr, RegisterCode, StrPut, ObjPtr, ObjGet, ArrPtr, VarPtr, MemAlloc, MemFree, Bitness, Version.
- В методах StrPtr, StrGet, StrPut вместо типа строки можно прямо указать её кодировку.
Изменения в версии 2.1 по отношению к версии 2.0:
- Добавлено: методы LastError, MemZero, MemCopy, MemRead, MemWrite.
- Добавлено: необязательный параметр Offset для StrGet и StrPut.
- Добавлено: возможность использования имён кодировок — "utf-8" и т.п. — в StrPtr, StrGet и StrPut.
- Изменено: необязательный параметр Offset в NumGet и NumPut может опускаться из середины списка параметров.
- версия 2.1.1.0 собрана без сжатия компрессором Mpress для избежания ложных срабатываний некоторых антивирусов.
- в версии 2.1.1.1 исправлена ошибка в методе LastError, вызывавшая исключение при его вызове с аргументом 1, если описание для кода ошибки не было найдено.
В версию 2.2 добавлен флаговый параметр в метод RegisterCallback для указания соглашения вызова callback-функции.
В прикрепленных файлах версия 32-разрядная, 64-разрядная и мануал по установке и использованию от разработчика на английском и русском языках.
За то что не поленился и скопировал сюда с сайта автора описание — спасибо 🙂 Ну а где пример как использовать в 1С?
(2) CaSH_2004, применений множество. сделай поиск — Новый COMОбъект(«DynamicWrapper»,
как реализовать функцию Sleep в 1С например и т.д.
Можно ли выложить исходники (например на github)?
(4) напиши автору:Юрий Попов
Появилась новая версия DynamicWrapperX2 с новыми методами (например MemRead). Можно ли обновить описание?
У новой версии функция Version возвращает 2.1.4.1 . Хотелось бы знать версию компоненты из этой публикации.
(6)обновлено до версии 2.1.
(7)2.1.1.1
WIndows defender теперь стал определять ее как HackTool
(10)
Инструменты разработчика не могу запустить из за этого :((
Доступа админского нет на этом компьютере.. побороть не могу
Можете что-то посоветовать?
(10) Советую подождать выхода новой версии ИР.
(11) Выпущена исправленная версия ИР.
(12) А Дефендер все, навсегда будет ругаться на эту тулзу?
Может это ошибка — все таки тулза подписана, да и инструменты Рассиновича для винды (кажется такая фамилия) тоже были достаточно «хактулзными» — но ничего, не ругается на них..
PS .. и странно — 32-битный ДинамикВраппер не определяется как хактулз..
(14) Откуда мне знать то?)
(14)
Коллега, а Вы какой 1C-й клиент используете x32 или х64? С каким из них проблемы?
(16) Проблема с x64 компонентой, клиенты используем и те и эти..
.. но версия компонента не от клиента, а от разрядности ОС зависит
(по моему так, не?).
(17) «(по моему так, не?). » не, не так, как раз от клиента.
Теперь по сути вопроса. У меня defender не ругается ни на ту, ни на другую версии, может это связано с установленным AVG.
Предлагаю провести следующий эксперимент: сделать копию Dll, взять winhex, найти там CLSID и исправить его в двух местах. Сохранить и проверить дефендером, будет ли ругань.