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

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

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

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

У этого указателя нужно получить указатель VFTable и дергать оттуда методы Init(), FindMethod(), CallAsProc(), CallAsFunc(). Засада может ожидать если компонента использует механизмы платформы для работы.
12 MadDAD
 
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
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.