Подскажите, кто нибудь сталкивался с такой проблемой ?
Простейший пример:
Скрипт Lua:
Код |
---|
function main() Quik_Lua_connector = require("Quik_Lua_connector") Quik_Lua_connector.run_CPP() ------------------------- while not stopped do sleep(1) end ------------------------- end |
Код |
---|
#include "my_func.h" extern "C" { #include "lauxlib.h" #include "lua.h" } #pragma comment(lib,"C:\\Users\\lua54.lib") int forLua_run_CPP(lua_State* L) { int status - my_func(L); return 0; } |
my_func.h: отдельным файлом:
Код |
---|
#pragma once extern "C" { #include "lauxlib.h" #include "lua.h" } int my_func(lua_State* L) { int my_int =5; return my_int ; } |
Соответственно - все компилируется, запускаю скрипт в Квике и квик сообщает об ошибке:
Код |
---|
error loading module 'Quik_Lua_connector' from file 'C:\SBERBANK\QUIK_x64_KA\Quik_Lua_connector.dll': Не найдена указанная процедура. |
И вся проблема из за того, что я подключим хедеры Lua в отдельном my_func.h.
Если я убираю include из my_func.h. и соответвенно убирают "lua_State* L" из параметров функции, то все работает.
Почему так ?