• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Как можно динамически вызвать процедуру из библиотеки?

  • Автор темы phantom76
  • Дата начала
P

phantom76

появилась потребность вызвать динамически процедурку из библиотеки, напрямую вызвать не могу. т.к. нижние библиотеки скрыты, если бы была функция все понятно - через Execute...
а как быть в случае SUB ?
 
H

hosm

а какая разница - ф-ция или процедура? Вы же вызываете код из либы, напишите в экзекьюте юз либы и вызов процедуры.
 
A

Akupaka

напрямую вызвать не могу. т.к. нижние библиотеки скрыты, если бы была функция все понятно - через Execute
Растолкуй, что значит "скрытые" и чем они так закрыты, что из них нельзы вызвать функцию/процедуру?
Если функция объявлена приватной, то ее и Execute не вытянет.
А, если не объявлена, то и без Execute вызвать можно, главное знать ее систаксис.
 
P

phantom76

все просто, исходный код библиотек базового уровня скрыт дизайном, присутствует только в откомпилированном виде, далее идет 2-3 уровня библиотек с открытым кодом, из них соответственно пытаюсь запустить процедуры и функции или объявлять классы объявленные в них. Если я уже в своем коде пишу напрямую use имя_библиотеки, а в теле вызываю ее компонент, то при компиляции возникает ошибка, указывающая на библиотеки нижнего уровня, нет исходного кода.

Через Execute все получилось.
 
A

Akupaka

*надо запомнить* Знач надо скрывать выгрузкой кода в инклуды...
 
N

nvyush

Знач надо скрывать выгрузкой кода в инклуды.
Есть свои грабли. Насколько я помню, если есть библиотеки А, В, С, причём В и С включают А (Use A), то в библиотеке Е Use B + Use C будет вызывать ошибку для инклудной A (для неинклудной А всё норм). Хотя м.б. в 8.5.1 поведение изменилось, не проверял.
 
P

phantom76

*надо запомнить* Знач надо скрывать выгрузкой кода в инклуды...

А можно пояснить на примере?

Мой пример такой, есть библиотеки A,B,C , исходный код библиотеки А скрыт(удален) и базы, в библиотеке B используется А (use A) , в С - "use B". Далее, например пишу свою библиотеку , где делаю "use C", при сохранении появляется ошибка, указывающая на отсутствие классов библиотеки A при компиляции. Тоже самое, при внесении изменений в библиотеку С, сохранить их можно, при компиляции есть ошибки указывающие на объекты из А.
А вот например акцию использующую "С" мне создать удалось для формы, по-изучаю вопрос в дальнейшем, не все пока мне в нем ясно.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!