Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 2
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png Screenshot_9.png
(70.5 Kb, 10 просмотров)

Добрый день, возник вопрос как передаются параметры из скрипта в динамическую библиотеку.
Код не мой (остался от предшественника) хочу разобраться. Код рабочий!!!! Ничего придумывать не нужно.
Напомню, что согласно оф. документации параметры при подключении dll передаются (с права на лево)

Это вызов библиотечной функции из скрипта. Как видно передаются параметры для распаковки БД, но это не важно.

Код: Выделить весь код
 dbdll::NSIS_IBExecuteRestore /NOUNLOAD $0 $szGBackUtilityPath "$INSTDIR\DataBase\BackUp\${SDMP_DB_IB}" "localhost:$INSTDIR\DataBase\DataBase.FDB" "SYSDBA" "masterkey" "$INSTDIR\DataBase\LogFile.LOG"
А это кусок библиотечной функции. Как можно видеть параметры передаются через стек.
(во вложенном файле)

Вопросы к знатокам:
1) Что хранится в стеке (не тип переменной, а идейно. Что туда кладут, какую информацию?)
2) Кто пишет в стек (NSIS или внутри DLL)
3) Кто читает из стека
4) Где располагается стек. Тип в памяти процесса скрипта или в памяти dll?
5) Где можно почитать подробнее про то каким образом происходит взаимодействия с внешними функциями у NSIS?

P.S: на некоторые вопросы я предполагаю ответы, но хочу узнать у более опытных людей.

Отправлено: 14:57, 18-06-2020 | #2456