Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Можно ли подружить Native-библиотеку с 1С 7.7

v7: Можно ли подружить Native-библиотеку с 1С 7.7
Я
   Volodja
 
22.05.19 - 15:33
Подскажите, пожалуйста. Есть написанная Native-библиотека для криптографии. Успешно используется в 1С 8.х
Как обернуть ее для использования в 1С 7.7? Исходного кода библиотеки нет. Возможно ли это?
 
 
   ДенисЧ
 
1 - 22.05.19 - 15:35
   Volodja
 
2 - 22.05.19 - 15:45
(1) Где взять dynwrapx.dll  ?
   Garykom
 
3 - 22.05.19 - 15:47
(0) Поднять http сервис на 1С 8 и заюзать его из 1С 7.7
   Вафель
 
4 - 22.05.19 - 15:48
(3) тормозить все будет не по детски?
   Garykom
 
5 - 22.05.19 - 15:48
(4) У нас энтерпрайз или нет? Когда не тормозит это уже точно не энтерпрайс
   Volodja
 
6 - 22.05.19 - 15:48
(3) А если нет 8-ки?
   Volodja
 
7 - 22.05.19 - 15:50
   ДенисЧ
 
8 - 22.05.19 - 15:54
(7) Gj[j;t
   Кирпич
 
9 - 22.05.19 - 16:08
Написать еще одну ВК, которая будет прикидываться восьмеркой
   MadDAD
 
10 - 23.05.19 - 15:50
(7)
http://dynwrapx.script-coding.com/dwx/pages/dynwrapx.php

Нужно изучить технологию Native - внешних компонент, на сколько я помню там все методы экспортируются из библиотеки без участия COM.

И написать обертку на 1С с использованием DynamicWrapperX.
Экспортируемые методы можно посмотреть при помощи dependencywalker или dumpbin, ну или IDA.
   MadDAD
 
11 - 23.05.19 - 16:12
(10)
Native-компонента экспортирует 3 метода
GetClassObject()
DestroyObject()
GetClassNames()

GetClassNames - возвращает массив имен создаваемых объектов.
GetClassObject - возвращает указатель на созданный внутри компоненты экземпляр класса, по переданному имени.

У этого указателя нужно получить указатель VFTable и дергать оттуда методы Init(), FindMethod(), CallAsProc(), CallAsFunc(). Засада может ожидать если компонента использует механизмы платформы для работы.
   MadDAD
 
12 - 23.05.19 - 16:20
(11) Если компонента все же использует механизмы платформы, и автор достаточно упорот чтобы продолжить интеграцию - нужно будет написать библиотеку -обертку, которая действительно будет имитировать v8 - т.е. должна объект, реализующий интерфейс v8: методы AddError(), RegisterProfileAs(), Read(), Write() и т.п. из списка отсюда -https://its.1c.ru/db/metod8dev#content:3221:hdoc:_cpp_intf_enterprise

В данном случае, кмк, проще написать с нуля такую же компоненту для 7.7

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.