Не найдена указанная процедура. Error loading module '' from file

Страницы: 1
RSS
Не найдена указанная процедура. Error loading module '' from file, Подключение dll библиотеки на C++ к скрипту lua
 
Здравствуйте!
Использую эту статью : 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.
 
Скачал себе luaforwindows вот от сюда :

https://code.google.com/archive/p/luaforwindows/downloads?page=1
установил, добавил в .cpp файл :

#pragma comment(lib,"F:\\lua5.1.dll")

пересобрал проект и открыл длл через dependency walker - не одной красной ошибки не обнаружил. скопировал эту длл в папку со скриптом и исполняемым файлом терминала - и снова та же самая ошибка.
далее открываю эту же самую dll библиотеку в dependency walker и вижу вот это :


слов нет, одни эмоции - ну теперь то чего ему не хватает ? скопировал всё содержимое папки Realise и никакого толку.
 
Во-первых, если вы перезаписали lua5.1.dll, то восстановите ту версию, которая поставлялась вместе с Квиком.
Во-вторых, имя функции регистрации библиотеки должно иметь вид luaopen_имябиблиотеки, а у вас функция называется luaopen_QluaCSharpConnector, а библиотека - QluaCharpConnector.
 
Вы правы, я просто ошибся в одном символе, перепроверил имена функций - поправил, заработало. Спасибо  
Страницы: 1
Читают тему
Наверх