Коннектор DLL QUIK - QLua(Lua) - C++

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 5, среднее: 5,00 из 5)
Загрузка...

Qlua-csharp-connector-dll   Для того, чтобы обмениваться данными между скриптом Qlua и приложением на C# требуется библиотека DLL, написанная на языке C/C++. Для этого в Visual Studio нужно "Создать проект", выбрав язык C++ и тип проекта "Пустой проект". Создайте новую папку для проекта, если необходимо.

В Visual Studio Community 2013 это выглядит следующим образом:
В результате, Visual Studio создаст решение и один проект в нем:
Сейчас можно добавить в проект файл исходного кода
Следующим шагом необходимо добавить в проект заголовочные файлы и библиотеку Lua
Далее, нужно настроить свойства проекта:
Добавление базового кода
Сейчас можно 'Собрать' проект
Использование библиотеки DLL в скрипте QLua(Lua)
Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!

Добавить комментарий

Коннектор DLL QUIK - QLua(Lua) - C++: 73 комментария

  1. Все сделал по указанным в статье примерам. Скрипт писался в нотепаде++ методом копипаста. Длл QluaCSharpConnector в директории Квика есть + еще 3 файла типа .pdb/.lk. Однако при запуске скрипта в квике выходит соббщение, что ДЛЛ с таким именем не найдена. В какую сторону копать, чтобы пример ваш заработал, так как у самого мысли кончились.

  2. Дмитрий,здравствуйте. Пытаюсь пересобрать Вашу библиотеку SenderEmail.dll для Квика вер.8.0. Что-то не выходит. Сделал всё по инструкции, что написал человек в комментариях. Выдает такую ошибку в нескольких строках :
    'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Project1 c:\users\sega\source\repos\project1\project1\project1.cpp 194
    Заранее извиняюсь за наглость, но может Вы могли бы обновить архив EmailSender.zip с перекомпилированной библиотекой под х64?

    1. Я не Дмитрий, но отвечу, надеюсь не обидитесь.
      Если только эта ошибка, то используйте функцию strcat_s вместо strcat . Собственно это и предлагается сделать в описании ошибки. Функция по моему аналогична, только еще нужно передать размер. Опять таки, по моему эта ошибка не связана с разрядностью.

    2. Поправил ошибки, сейчас осталось две :
      1)аргумент типа "WCHAR *" несовместим с параметром типа "const char *" Project1 C:\Users\Sega\source\repos\Project1\Project1\Project1.cpp стр.48
      2)"int strcmp(const char *,const char *)": невозможно преобразовать аргумент 1 из "WCHAR [260]" в "const char *" Project1 c:\users\sega\source\repos\project1\project1\project1.cpp стр. 48
      Всё в одной строке, причем если менять конфигурацию вновь на х32, то ошибка пропадает.

  3. Здравствуйте.
    Квик обновился до 8 версии, теперь он x64

    Помогите создать в visual studio 2013 библиотеку dll

    Просто сменил Release Win32 на Release x64 - не помогло.
    Выдает ошибки
    Ошибка 1 error LNK2001: неразрешенный внешний символ "luaL_openlib"
    Ошибка 2 error LNK2001: неразрешенный внешний символ "lua_pushstring"

    Либо нужны другие файлы lauxlib.h, lua.h, luaconf.h и lua5.1.lib

    Либо нужно как то настроить Visual Studio 2013, но я не знаю как.

    Помогите.

    1. Разобрался. Что и как делал:
      У меня Visual Studio 2013, на других версиях думаю так же, но не пробовал.
      1. Создал проект и настроил его по инструкции как на текущей странице (только файлы брал другие см.п.2, а так же см п.3)
      2. На сайте http://luabinaries.sourceforge.net/ выбрал "Lua 5.1.4 - Release 2 (sources and Visual C++ 8/9 binaries only)" Далее "Windows Libraries" и скачал "lua-5.1.4_Win64_vc12_lib.zip". Скаченные файлы разместил как в в описании.
      3. В Visual Studio 2013, при настройке проекта, я изменил: Конфигурация Активная (Release) Платформа x64 (Создал через диспетчер конфигураций)
      4. Код СИ скопировал для примера.
      5. Проект успешно собрал, dll библиотека появилась.
      6. Создал скрипт Lua, подключил через require. Запустил в QUIK 8.0.1.1 и все заработало.

      1. Подскажите, возникает ошибка
        LNK1561 точка входа должна быть определена!?
        в чем может быть причина..все по инструкции сделал, код из примера взял