Будет ли интересна наработка, расширяющая возможности данной dll?
Суть доработки - добавление нового встроенного метода RegisterAddr, который позволяет объявлять участок кода в памяти процесса, как функцию. Синтаксис метода точно такой же как и у родного метода Register, за исключением первого параметра.
RegisterAddr( Addr, FuncName [, i=ParamTypes] [, r=RetValType] )
Для чего это нужно? - Это позволяет из 1С-ки напрямую запускать код из памяти процесса. Как вариант - обращение к виртуальным функциям объектов.
В архиве dll, обработка dxw.ert и пример.ert
1. DLL родная, с ресурса
http://www.script-coding.info/ в ней я изменил только один байт в PE-заголовке секции .const. Это необходимо, чтобы сделать секцию Writable.
2. Обработка dxw.ert - добавляет новый метод RegisterAddr
3. Пример - я взял его ассемблерный вариант с проклаба и переложил на скрипт. Не знаю, кто реальный автор, т.к. обнаружил его аналог в сорцах 1c++ в ModuleString.cpp
Смысл примера - выводит программный текст внешнего отчета.
Резюме:порядок действий-заменить DLL, запустить отчет dxw (один раз за сеанс), запустить пример.
ЗЫ:данные изменения согласованы с автором этой DLL.