Вопросы по использованию FFI Topic is solved

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
User avatar
John Doe
Бюрократ
Posts: 13931
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 76 times
Been thanked: 431 times
Contact:

Вопросы по использованию FFI

Post by John Doe »

FFI — одна из стандартных библиотек luajit.
Позволяет из Lua кода вызывать внешние C-функции и использовать структуры данных C.
В данной теме задаём вопросы по использованию FFI

Заготовка для документации: viewtopic.php?f=57&t=8418&p=147610#p147610

Примеры готовых скриптов:

Предупреждение: viewtopic.php?p=147610#p147610
Yegor
Posts: 1348
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 36 times
Been thanked: 64 times

Вопросы по использованию FFI

Post by Yegor »

Latest post of the previous page:

У меня возвращает 1 и 'q' в buf.
Last edited by Yegor on Tue 20 Jun, 2023 02:20, edited 1 time in total.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Yegor
Posts: 1348
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 36 times
Been thanked: 64 times

Вопросы по использованию FFI

Post by Yegor »

Попробуйте передать KeyState не NULL, а пустой массив в 256 элементов.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
HaRT
Moderator
Posts: 10937
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 224 times
Been thanked: 362 times

Вопросы по использованию FFI

Post by HaRT »

Yegor wrote: Tue 20 Jun, 2023 02:24 Попробуйте передать KeyState не NULL, а пустой массив в 256 элементов.
Да, у меня тоже возвращается 1.
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 5249
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 318 times

Вопросы по использованию FFI

Post by 2useven10 »

Попробуйте 2 4 во флагах, тогда возможно и с nil сработает.
Last edited by 2useven10 on Tue 20 Jun, 2023 08:34, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13931
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 76 times
Been thanked: 431 times
Contact:

Вопросы по использованию FFI

Post by John Doe »

Флаги не помогли, а с массивом работает.
Не знаю как это понимать, но что есть то есть.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 13931
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 76 times
Been thanked: 431 times
Contact:

Вопросы по использованию FFI

Post by John Doe »

Дано: 20 байт в виде строки, например "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
Требуется получить из них структуру VersionInfo

Пробую так:

Code: Select all

local ffi = require "ffi"
local version = "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
--local v = ffi.cast("struct VersionInfo", version)
Закомментированное конечно не работает (получаю bad argument #1 to 'cast' (invalid C type)).
Вопрос: как сделать правильно?
https://t.me/FarManager — Telegram чат
User avatar
zg
zero-gravity
Posts: 6074
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 187 times
Contact:

Вопросы по использованию FFI

Post by zg »

John Doe, звёздочку после VersionInfo поставьте.
Post Reply

Return to “Нужна помощь”