Еще пожелание В справке которая идет в комплекте в описании функции PrintDbgStr нет никакой информации о том куда осуществляется вывод, приходится дополнительно искать, хотя будь эта информация в справке, было бы сэкономлено много времени По хорошему, можно DebugView в папку с Quik положить или хотя бы ссылку на нее в справке
MikhaZz написал: Выяснил, что когда собираются модули, то они линкуются к имени библиотеки
Цитата
MikhaZz написал: Для линковки использовал эти библиотеки
На самом деле для линковки сама по себе длл вообще не нужна. Нужна соответствующая .lib, а в ней по сути только имя длл и секция EXPORTS без конкретных адресов. Поэтому у вас прокатывает фокус: линкуете с длл из луа, а в рантайме подгружается длл из квика. Можете сами посмотреть дампбином, адреса функций в них разные , а оно работает. Но лучше выдрать все же .lib из квиковской длл и линковать с ней.
Да, я понимаю что данные о том куда линковать в .lib содержатся, но не подумал о том чтобы по простому там имя подправить Я ни где нормальной инструкции не мог найти как заставить это все дело работать, пришлось разбираться Думаю, там где-то более хитрые зависимости есть, поэтому лучше брать правильные .lib файлы Самое главное, что меня смутило, это то что пробовал разные готовые сборки под х64, а они все равно не работали! Вываливалась ошибка "The specified module could not be found." Потом только дошло что проблема линковки и надо все пересобирать так, чтобы библиотеки модулей были прилинкованы к правильным библиотекам До кучи в пакетах luarocks уже готовые конфиги, по простому не изменить, из-за этого пришлось тоже повозиться
Дальше все содержимое архивов скидывается в папку luarocks и уже все нормально собирается из командной строки Visual Studio x64 Т.е. можно исключить этап сборки lua из исходников
После многих часов мучений удалось все завести заработали модули luasocket и luasec работают https запросы
1) Выяснил, что когда собираются модули, то они линкуются к имени библиотеки, т.е. если собрать с линковкой к библиотеке lua51.dll то модуль не будет работать с библиотекой lua5.1.dll Это важно при сборке каких-либо пакетов из исходников, необходимо правильно указывать к какой библиотеке линковаться Quik использует lua5.1.dll, поэтому, там где есть линковка к библиотеке lua, то нужно проверить имя Если возникает ошибка The specified module could not be found. То нужно проверить что тот модуль собран с правильной линковкой
2.5) Перекинул библиотеки из "C:\OpenSSL-Win64-src\lib\VC" libcrypto64MD.lib и libssl64MD.lib в папку "C:\OpenSSL-Win64-src\bin" заменил в именах 64 на 32, это требуется для сборки luasec
2.6) Через командную строку Visual Studio x64 установил пакеты luascoket и luasec luarocks install luasocket luarocks install luasec OPENSSL_DIR=C:\OpenSSL-Win64-src
Nikolay написал: Если кому еще необходимо. Я бился над сборкой socket и ssl под x64. Вроде собрал, но как-то нестабильно оно работало. В итоге нашел готовые сборки, более стабильно работающие. А вот lCurl пока не удалось собрать под x64.
Пытаюсь подцепить socket к скрипту устанавливал библиотеку через luarocks, не заработало и ругается на разрядность Попытался использовать библиотеки по ссылке выше, пишет ошибку
Код
error loading module 'socket.core' from file 'C:\Lua\lua_socket_ssl\clibs_x64\socket\core.dll':
The specified module could not be found.
Код
error loading module 'socket.core' from file 'C:\Lua\lua_socket_ssl\clibs_x86\socket\core.dll':
%1 is not a valid Win32 application.
Замучился уже, как сокеты прикрутить к последней версии Quik? Хочу нормальный обмен данными сделать с внешними приложениями, а тут такая подстава Можно, конечно, написать библиотеку на С которая будет в свою очередь работать с сокетами и прочим, но надеюсь что обойдется