Загрузка своей dll с QT и без QT

Страницы: 1
RSS
Загрузка своей dll с QT и без QT, Не загружается dll если в ней QT классы, а без них все ок.
 
Доброго всем времени суток !

Есть своя dll все работает, только добавляю туда классы из QT - перестает грузится в Quik. Эта dll, когда собираешь ее с QT, сама требует доп. dll-ок и там аж 3 каталога ей нужно. Это все создается в папке с dll спец.утилитой от qt. И такая dll нормально грузится из других программ. В чем проблема у lua с ее package.loadlib? Не знает, как доп.файлы подтянуть или же вообще на это не способна и придется отдельную библиотеку только с qt писать а в lua грузить "чистую" dll без внешних зависимостей?
 
Изучайте как устроена загрузка DLL в Windiws
В частности, переменная среды path
Если дело в самом деле в dll-ках, то самое простое положить все требуемые DLL в каталог с quik
 
Не помогает. Quik не опознает такую dll, но достаточно убрать одну строчку в с++ коде с классом из QT и все ок.
 
Выложите куда-то собранную длл и все нужные для неё длл
Быть может удастся разобраться
Иначе разговор далее беспредметный
 
Вот ссылка: https://disk.yandex.ru/d/9E7rXY8kEXz6Mg
В архиве в т.ч.:

1_dll.lua - для Quik - нужно поставить правильный путь в единственной строке - выдает ошибку при загрузке.
2_py_demo.py - для Python - нужно поставить правильный путь в третьей строке - все работает

Сама dll загружается и работает в Quik если собрать ее закоментировав одну строку "QQmlPropertyMap tmp;". Ну, соответственно, там и вес меньше и файл только один
 
BVladimir, поди Qt собран с динамическим рантаймом. У питона тоже динамический и подгружается из папки питона, у квика статический. Вот эти вот все ucrtbase.dll, ms-api-xxx.dll и прочая, если так, должны в папке квика быть.
 
А что это за ucrtbase.dll и ms-api-xxx.dll - они к qt не относятся ? Разве не должны они из системной path браться сами ? Если dependancy walker-ом пройти по РАБОЧЕЙ версии dll (без qt), то он тоже выдает там кучу вопросиков по разным API-MS-*.DLL, но работает.
 
Берете программку Dependency Walker
Открываете в ней вашу Lua_535_x64_dll_for_Quik.dll, смотрите зависимости.
Видно, что зависит (из не выложенных вами) от python39.dll
У вас на компьютере если вашу библиотеку открыть - напротив python39.dll тоже будет вопросительный значок в желтом кружке?
 
Да нет конечно и все используемые функции зеленые. Все вопросики только внутри "веток" KERNEL32.DLL и USER32.DLL ну так они и в рабочей версии присутствуют. А внутри PYTHON39.DLL и QT6QMLD.DLL вопросики тоже только с виндовыми dll.
 
Про PYTHON39.DLL - даже не подумал, что выкладывать смысл имеет.
 
И все эти доп. библиотеки вы в корень квика сложили, верно?
Тогда не знаю
 
Интересно было бы сравнить  зависимости для библитеки, которая таки работает
 
PYTHON39.DLL тоже в корень Quik ? Ну он в системном path сидит ?
 
Цитата
BVladimir написал:
PYTHON39.DLL тоже в корень Quik ? Ну он в системном path сидит ?

Давно б уже проверили.
Вопросительный знак после второго предложения? если так - то не понятно к кому вопрос
 
Заработало ! Просто PYTHON39.DLL в корень Quik бросил и заработало. Вобщем протупил я. Прошу прощения ! Спасибо всем.
Страницы: 1
Читают тему (гостей: 1)
Наверх