Здравствуйте, гость ( Вход | Регистрация )

> вопрос по ffi и типы данных
trico
сообщение 27.3.2020, 9:25
Сообщение #1


**

Neophyte
Сообщений: 31
Регистрация: 23.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.593
Возраст: 26



Пишу плагин на делфи, с integer разобрался:
Код
local ffi = require("ffi")
local lib = ffi.load("getpix.dll")

ffi.cdef[[
   __cdecl int getpix(int h, int x, int y);
]]


а вот если у меня boolean либо string?? Ну или же своя структура. Как указать это в синтаксисе луа в пилоте?
на __cdecl bool getf(string patch); ругается "declaration specifier expected near 'string'"

нужно обмениваться с длл типами данных string, bollean, array[a,b]. как это должно выглядеть?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
cirus
сообщение 1.7.2020, 21:09
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26325
Пользователь №: 16.971
Возраст: 29



Цитата
ка это правильно записать?

Delphi вообще не знаю, пример на C++: Прикрепленный файл  PilotDLL.zip ( 39,71 килобайт ) Кол-во скачиваний: 7493

Пилот
Код
--lua
local ffi = require('ffi')
local lib = ffi.load('PilotDLL.dll')  -- длл должна быть в папке с пилотом

ffi.cdef[[
    typedef struct { int a; int b; } MyStruct;
    __declspec(dllexport)void testf( MyStruct *result, int a, int b );
]]

log 'clear' log 'mode compact'

local result = ffi.new('MyStruct')   -- объявили структуру
lib.testf( result, 100, 20 )           -- вызов функции
log(result.a)   -- вернёт 2000 (100 * 20)
log(result.b)   -- вернёт 5 (100 / 20)

dll c++
Код
#include "pch.h"

struct my_struct {
    int x;
    int y;
};

extern "C" __declspec(dllexport)void testf(struct my_struct *r, int a, int b)
{
    r->x = a * b;
    r->y = a / b;
}
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 18.9.2025, 18:36
Designed by Nickostyle