Здравствуйте! Использую эту статью : https://quikluacsharp.ru/qlua-c-cpp-csharp/konnektor-dll-quik-qlua-lua-c/ попробовал написать свой коннектор как в образце. Исходный код .dll библиотеки С++ полностью скопирован и собран(как в Debug так и в Realise). Однако скрипт .lua вылетает на первой же строчке :
require("QluaCharpConnector");
.dll и скрипт .lua лежат в одной папке с исполняемым .exe терминала quik. Пробовал менять кодировки скрипта, пересобирать dll под разные платформы - без толку.
При этом пробовал вместо `QluaCharpConnector` подключить любую другую dll из корневого каталога квика - и результат был тем же, что конечно еще ничего не значит но наводит на мысль о проблеме в файле скрипта.
Открыл .dll при помощи dependency walker и увидел вот такую картину :
Как сказано в одном из комментариев к той же теме :
Цитата
откройте свою dll и увидите чего ей не хватает, скорее всего это какие-то lua библиотеки, возможно из-за того, что у Вас не установлена Lua for Windows.
Не очень понимаю, что имеется в виду учитывая что в корневом каталоге с квиком лежит lua5.1.dll.
пересобрал проект и открыл длл через dependency walker - не одной красной ошибки не обнаружил. скопировал эту длл в папку со скриптом и исполняемым файлом терминала - и снова та же самая ошибка. далее открываю эту же самую dll библиотеку в dependency walker и вижу вот это :
слов нет, одни эмоции - ну теперь то чего ему не хватает ? скопировал всё содержимое папки Realise и никакого толку.
Во-первых, если вы перезаписали lua5.1.dll, то восстановите ту версию, которая поставлялась вместе с Квиком. Во-вторых, имя функции регистрации библиотеки должно иметь вид luaopen_имябиблиотеки, а у вас функция называется luaopen_QluaCSharpConnector, а библиотека - QluaCharpConnector.