OneScript
OneScript copied to clipboard
Не компилируются Перечисления заданные в библиотеке DLL, которая подгружается с помощью ПодключитьВнешнююКомпоненту
Опишите ошибку если в DLL определено перечисление, то его не возможно использовать в коде программы, т.к. на момент компиляции библиотека не загружена...
Воспроизведение ошибки
- Создаём DLL в которой определяем перечисление МоёПеречисление...
- Создаём скрипт, в котором с помощью ПодключитьВнешнююКомпоненту("ххх.dll"); загружаем библиотеку...
- Добавляем код использующий перечисление, например, ОК = МоёПеречисление.ОК;
- видим ошибку компиляции "Неизвестный символ: МоёПеречисление"
Ожидаемое поведение Должен быть способ подгрузить библиотеку DLL перед компиляцией скрипта... предлагаю модифицировать директиву #Использовать... #Использовать "ххх.dll"
Дополнительная информация модификацию надо сделать для двух режимов, для запуска скрипта и для компиляции в ЕХЕ.. я предлагаю сделать как в приложенном файле, но это только для режима запуска скрипта... как там ЕХЕ собирается я еще не разбирался... LibraryResolver.zip .
Способ уже есть, видимо не работает. Если библиотека, подключаемая через Использовать содержит ВК, то она должна в модуле загрузчика library-loader.os загрузить ее методом ЗагрузитьБиблиотеку
информации о том, что такое library-loader.os мне найти не удалось... возможно Вы имели ввиду package-loader.os, с ним пробовал... если установить всё как положено в папку lib, то при запуске скрипта библиотека подгружается и перечисления тоже работают... но в ЕХЕ файле уже не работает... я об этой проблеме писал тут https://github.com/EvilBeaver/OneScript/issues/1063#issuecomment-995353864 но вот заставить работать загрузку библиотеки из текущей папки скрипта мне не удалось... не всегда удобно устанавливать библиотеку в lib, особенно когда скрипт носишь с собой... может просто не знаю как... ПодключитьВнешнююКомпоненту работает, но она загружает библиотеку во время выполнения, поэтому при компиляции перечисления определенные в библиотеке не компилируются... В общем, если есть желание, то внесите предложенные мной изменения в этой ветке и в той на которую я ссылку привел... всё равно лучшего решения пока ни кто не предложил...
кстати, извиняюсь, не заметил, такая проблема уже была описана здесь: https://github.com/EvilBeaver/OneScript/issues/1091