Serg_ (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Создание и вызов DLL из QLua - прошу помощи
 
Создание и вызов DLL из QLua - прошу пожалуйста помощи.

Второй день мучаюсь, ну ничего не получается, точнее получается, но только - Ошибки.

Вот по шагам я делаю так:

0)Скачиваю скомпилированные файлы Lua: lua-5.4.2_Win64_bin  -  https://sourceforge.net/projects/luabinaries/
1)Создаю проект в Visual Studio.
2)Создаю файл .cpp и копирую туда следующий код:
Код
#include <iostream>
#include <windows.h>



//=== Необходимые для Lua константы ============================================================================//
#define LUA_LIB
#define LUA_BUILD_AS_DLL


//=== Стандартная точка входа для DLL ==========================================================================//
BOOL APIENTRY DllMain(HANDLE hModule, DWORD  fdwReason, LPVOID lpReserved) 
{
    //Вроде бы это не обязательно
    return TRUE;
}




//=== Заголовочные файлы LUA ===================================================================================//
extern "C"
{
#include "C:\\Users\\Serg\\source\\repos\\Quil_Lua_connector\\Lua_staticlib_files_x64_5.4\\lauxlib.h"
#include "C:\\Users\\Serg\\source\\repos\\Quil_Lua_connector\\Lua_staticlib_files_x64_5.4\\lua.h"
}
#pragma comment(lib, "C:\\Users\\Serg\\source\\repos\\Quil_Lua_connector\\Lua_staticlib_files_x64_5.4\\lua54.lib")
//=== Заголовочные файлы LUA ===================================================================================//








//=== Реализация функций, вызываемых из LUA ====================================================================//
static int forLua_TestFunc(lua_State* L) {
    lua_pushstring(L, "Привет из C/C++");
    return(1);
}


//=== Регистрация реализованных в dll функций, чтобы они стали "видимы" для Lua ================================//
static struct luaL_Reg ls_lib[] = {
    {"TestFunc", forLua_TestFunc},
    {NULL, NULL}
};

//=== Регистрация названия библиотеки, видимого в скрипте Lua ==================================================//
extern "C" LUALIB_API int luaopen_lua_dll_x64_name(lua_State * L) 
{
    luaL_newlib(L, ls_lib);
    lua_setglobal(L, "lua_dll_x64_name");
    return 1;
}

3)Компилирую этот код release/x64 и Visual Studio Создает - lua_dll_x64_name.dll
4)Помещаю созданный .dll в папку с info.exe.
5)Запускаю Quik и запускаю следующий скрипт:
Код
path = getScriptPath() .. "\\lua_dll_x64_name.dll"package.loadlib(path, "luaopen_lua_dll_x64_name")()

function main()
   message(lua_dll_x64_name.TestFunc())
end
6)И квик сразу же выдает ошибку:
Код
...Lua_script.lua.txt:2: attempt to call a nil value

Ну что не так то ?? ((((((
Lua - C++ - примеры
 
Подскажите, есть ли какие ни будь условно официальные примеры, как связать С++ с Quik ?
Как сделать dll ?
Добавление вкладки и графика, Добавление вкладки и графика
 
Здравствуйте,

Подскажите пожалуйста, возможно ли, как то с помощью qlua добавить вкладку и добавить на ней график свечей какого либо инструмента ?
Страницы: 1
Наверх