Ладно, пока скачивается 32 битная windows 7, начну рассказывать о том, как я потерял 3 дня пытаясь поиметь такую простую вещь как sqlite3 на такой убогой платформе как… windows 10 x64 конечно же. После всех ужасов что я видел, вот что я вынес: quik (по крайней мере тот дистрибутив, что поставляет open-broker) 32 битный, следовательно во избежание взлета мозга из за ошибок чтения .dll рекомендуется использовать 32 битное г… битную windows, ибо msvcrt.dll, что используется линкером mingw берется именно из windows/system32. Пробовать переназначить путь до этой либы я не пытался и наверное это сохранило мне несколько часов свободного времени.
Quik, судя по всему просматривает LUA_PATH/LUA_CPATH, ибо после установки LuaRocks и установки этих переменных quik при запуске скриптов lua стал использовать либо именно по этим путям + удаление lua.dll из C:\Open_Broker_Quik (как то так) ни к чему не приводило.
К сути: для использования sqlite3 в lua предлагается использоваться lsqlite3/lsqlite3complete. Разница между ними лишь в том, что lsqlite3complete статически линкует при сборке либу sqlite.dll, так что вам не надо париться о том, где же должна лежать эта dll-ка и каким образом при выполнении require 'lsqlite3complete' интерпретатор понимает откуда ее брать. В репозиториях luarocks имеется еще несколько wrapperов для sqlite, но они все древние и имеют куда более отвратительный интерфейс, нафиг их.
В общем поставил ось, поставил lsqlite3, в консоли она заинклюдилась с пол пинка, а вот при запуске из quik я получил то же самое исключение - possible unhandled exception. Интересно, какой рак писал этот код, что он даже не пишет в чём именно ошибка. Самое лютое произошло, когда я завернул вызов require в pcall - я получил другое исключение, не помню как именно формулируется, но суть такая что этот require делал циклический инклюд. Жесть. До этого я пытался наколдовать то же самое зелье quik + sqlite3, но тока на 10 винде и там происходило следующее. require lsqlite3 приводил к ошибке, говорил что sqlite.dll не был найден (хотя конечно же он там был), но если я делал require sqlite3, он тоже падал, но после этого инклюд lsqlite3 проходил успешно (в консоли тока конечно же). В общем пока опять застрял. Не знаю куда копать, думаю попробовать руками собрать lsqlite3 и слинковать msvcrt.dll тот что в папке с квиком.
Если кто нибудь что то знает про всю эту тему, поделитесь.
Крч вот что надо делать: в quik юзается lua 5.1 так что все модули нужны под эту версию. После установки luarocks сходите в С:\Program Files\LuaRocks и уберите оттуда строчку про MVCRT80. Ставьте lsqlite3complete и огонь - оно работает.