При регистрации через luaopen_ квик выгружает lua53.dll раньше, чем саму dll при условии, что я не подписываюсь на main или вызываю в main ошибку при помощи LuaError.
Пользователь
Сообщений: Регистрация: 21.08.2015
20.05.2020 00:38:43
Это часть более общего косяка, не прибивается стейт при ошибках и соответственно не собирается мусор. Про main не знал, тоже в копилочку добавится, очевидно, что ноги оттуда же растут. вот прям с ближайшей версии.
Пользователь
Сообщений: Регистрация: 23.01.2015
20.05.2020 05:36:02
Александр, Какая версия терминала используется? Проверяли поведение на 8.5.2? Если нет, то проверьте.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
20.05.2020 06:47:30
Цитата
Александр написал: При регистрации через luaopen_ квик выгружает lua53.dll раньше, чем саму dll при условии, что я не подписываюсь на main или вызываю в main ошибку при помощи LuaError.
Могли бы вы описать более подробно: как вы это поняли про порядок выгрузки?
Пользователь
Сообщений: Регистрация: 21.02.2015
20.05.2020 12:09:29
Цитата
Sergey Gorokhov написал: , Какая версия терминала используется? Проверяли поведение на 8.5.2? Если нет, то проверьте.
написал: При регистрации через luaopen_ квик выгружает lua53.dll раньше, чем саму dll при условии, что я не подписываюсь на main или вызываю в main ошибку при помощи LuaError.
Могли бы вы описать более подробно: как вы это поняли про порядок выгрузки?
Приходит в мою dll событие DLL_PROCESS_DETACH. Далее получаю handle lua53.dll при помощи GetModuleHandle. А ее уже и след простыл. У меня возвращает 0. Соотвественно сначала выгрузилась lua53.dll, а потом моя dll. Это также происходит на закрытие терминала. В нормальных условиях, когда нет ошибок и есть обработчик main, все работает с точностью наоборот: lua53.dll присутствует загруженной.