Павел (Все сообщения пользователя)

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

Страницы: 1
quik 8.5 ошибка
 
Спасибо.
Не понял что не так было в настройках проекта, создавал новый, настраивал вроде все как обычно, но не пошло.
Открыл проект, что создавал под QUIK 8 и изменил его как Вы написали, все собралось, тестовая функция вызвана из QUIK 8.5 и успешно выполнена, с остальными буду постепенно разбираться. Еще раз спасибо.
quik 8.5 ошибка
 
Спасибо за помощь, s_mike, но не получается все равно.

Ошибка 1 error LNK1561: точка входа должна быть определена

У меня следующий код:
Код
#include <windows.h>

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

//=== Заголовочные файлы LUA ===================================================================================//
extern "C" {
#include "Lua\lauxlib.h"
#include "Lua\lua.h"
}

//=== Стандартная точка входа для DLL ==========================================================================//
BOOL APIENTRY DllMain(HANDLE hModule, DWORD  fdwReason, LPVOID lpReserved)
{
//Каждому событию соответствует свое значение аргумента fdwReason, передаваемого функции DllMain при его возникновении   
switch (fdwReason)
{
case DLL_PROCESS_ATTACH: // Подключение DLL          
break;
case DLL_PROCESS_DETACH: // Отключение DLL
break;
case DLL_THREAD_ATTACH:  // Создание нового потока
break;
case DLL_THREAD_DETACH:  // Завершение потока
break;
}
return TRUE;
}

//=== Реализация функций, вызываемых из 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_mylib(lua_State *L) {
lua_newtable(L);
luaL_setfuncs(L, ls_lib, 0);
lua_pushvalue(L, -1);
lua_setglobal(L, "mylib");

return 0;
}
quik 8.5 ошибка
 
Здравствуйте.

Как Вы подключаете dll ?

Остановился тут
//=== Регистрация названия библиотеки, видимого в скрипте Lua ==================================================//
extern "C" LUALIB_API int luaopen_mylib_8_5(lua_State *L) {
luaL_openlib(L, "mylib_8_5", ls_lib, 0);
return 0;
}

VS Выдает ошибку
Ошибка 1 error C3861: luaL_openlib: идентификатор не найден

Как это исправить?
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Здравствуйте.
Помогите собрать dll под QUIK 8.5, не собирается.
Под QUIK 8.0 ранее собрал, но она не подключается в lua скрипте. Использую require, а QUIK в ответ Critical error ACCESS_VIOLATION in script

Lua 5.3.5 скачал тут
https://sourceforge.net/projects/luabinaries/files/5.3.5/Windows%20Libraries/Static/lua-5.3.5_Win64_...

Файлы из архива заменил, но не собирается. Ошибки:
Ошибка 1 error C2079: "ls_lib" использует неопределенный struct "ls_lib"
Ошибка 2 error C2078: слишком много инициализаторов
Ошибка 3 error C3861: luaL_openlib: идентификатор не найден
4 IntelliSense: недопустимый неполный тип  (это она ls_lib ругается)
5 IntelliSense: идентификатор "luaL_openlib" не определен
QUIK 8.0
 
Установил 5.1.5 на Visual Studio 2013 - Все работает, библиотека собралась, в QUIK 8.0.1.1 скрипт запустился.

Скачал lua-5.1.5_Win64_vc12_lib.zip
QUIK 8.0
 
Благодарю за помощь. Все получилось. Скорее всего это я уже где то что то напутал.
Удалил все и начал с самого начала, все получилось.

Пишу что делал, возможно кому то пригодится:
У меня Visual Studio 2013, на других версиях думаю так же, но не пробовал.
1. Создал проект и настроил его по инструкции (только файлы брал другие см.п.2, а так же см п.3) Сайт https://quikluacsharp.ru/qlua-c-cpp-csharp/konnektor-dll-quik-qlua-lua-c/ надеюсь ссылки на сторонние сайты можно размещать.
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". Скаченные файлы разместил как сказано на сайте из п.1
3. В Visual Studio 2013, при настройке проекта, я изменил: Конфигурация Активная (Release) Платформа x64 (Создал через диспетчер конфигураций)
4. Код СИ скопировал для примера с того же сайта п.1
5. Проект успешно собрал, dll библиотека появилась.
6. Создал скрипт Lua, подключил через require. Запустил в QUIK 8.0.1.1 и все заработало.
QUIK 8.0
 
Библиотека собралась.

Что делал:

У меня Visual Studio 2013
На сайте выбрал Lua 5.1.4 - Release 2 (sources and Visual C++ 8/9 binaries only)
Далее Windows Libraries
И скачал lua-5.1.4_Win64_vc12_lib.zip

в Visual Studio изменил Release Win32 на Release x64 Собрал, ошибок не было.

Попробовал подключить dll библиотеку к скрипту через require("myNew");

Запустил скрипт и получил ошибку:
error loading module 'myNew' from file 'C:\QUIK_8.0.1\myNew.dll':
%1 не является приложением Win32.

Что я не так делаю?
QUIK 8.0
 
Здравствуйте.

А если мне нужно использовать собственную dll как сделать x64 ?

В Visual Studio Платформу x64 выбрал, но не собирается, ругается:
Ошибка 2 error LNK2001: неразрешенный внешний символ "lua_tolstring"

Я так понимаю нужны другие файлы для x64
lauxlib.h
lua.h
lua5.1.lib
luaconf.h

Но где их взять? Подскажите.
Страницы: 1
Наверх