|
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)
Нужно изучить технологию 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() и т.п. из списка отсюда -
В данном случае, кмк, проще написать с нуля такую же компоненту для 7.7
|
|