|
20 | 20 | На [godbolt](https://godbolt.org/z/KM3jaWMWs) можно посмотреть, как выглядят виртуальные таблицы для разных компиляторов. Виртуальные таблицы *msvc* отличаются от *gcc*/*clang*, при этом *gcc* и *clang* используют одинаковое ABI. Виртуальные таблицы реализованы в объеме достаточном для создания компоненты. |
21 | 21 |
|
22 | 22 | ## Описание файлов |
23 | | -* [src/lib.rs](src/lib.rs) - корень крейта, здесь располагаются экспортные функции GetClassNames и др. |
24 | | -* [src/ffi.rs](src/ffi.rs) - в этом модуле всё что связано с взаимодействием, также здесь находится весь небезопасный код. |
25 | | -* [src/addin1.rs](src/addin1.rs) - здесь непосредственно реализация компоненты, причем весь код безопасный. |
26 | | -* [src/addin2.rs](src/addin2.rs) - упрощенный вариант, используется другой трейт. |
27 | | -* [src/simple.rs](src/simple.rs) - трейт Addin для упрощенного варианта. |
28 | | -* [src/macros.rs](src/macros.rs) - содержит единственный макрос `name!` для удобного задания имен свойств, методов, классов. |
29 | | -* [conf1c](conf1c) - конфигурация 1С (выгрузка из конфигуратора 8.3.22), минимальный тестовый код. |
| 23 | +### [addin1c](addin1c) - крейт с вспомогательными объектами |
| 24 | +* [lib.rs](addin1c\src\lib.rs) - корень крейта. |
| 25 | +* [ffi.rs](addin1c\src\ffi.rs) - в этом модуле всё что связано с взаимодействием, также здесь находится весь небезопасный код. |
| 26 | +* [simple.rs](addin1c\src\simple.rs) - трейт Addin для упрощенного варианта. |
| 27 | +* [macros.rs](addin1c\src\macros.rs) - содержит единственный макрос `name!` для удобного задания имен свойств, методов, классов. |
| 28 | + |
| 29 | +### [example](example) - пример компоненты, содержит 2 объекта: |
| 30 | +* [lib.rs](example\src\lib.rs) - корень крейта, здесь располагаются экспортные функции GetClassNames и др. |
| 31 | +* [addin1.rs](example\src\addin1.rs) - реализация компоненты с помощью низкоуровнего интерфейса, причем весь код безопасный. |
| 32 | +* [addin2.rs](example\src\addin2.rs) - упрощенный вариант, используется другой трейт. |
| 33 | + |
| 34 | +### [conf1c](conf1c) - конфигурация 1С (выгрузка из конфигуратора 8.3.22), минимальный тестовый код. |
| 35 | +* [DataProcessors\Обработка1\Forms\Форма\Ext\Form\Module.bsl](conf1c\DataProcessors\Обработка1\Forms\Форма\Ext\Form\Module.bsl) - тесты для ручного запуска. |
30 | 36 |
|
31 | 37 | ## Разработка |
32 | 38 | Я использую для разработки VS Code. Отлаживать и тестировать компоненту удобнее всего в файловой базе. Чтобы при нажатии F5 сразу запускалась 1С, нужно поместить в файл *.vscode/launch.json* примерно такой код: |
|
0 commit comments