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

> вопрос по 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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
trico
сообщение 2.7.2020, 23:32
Сообщение #2


**

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



ура, работает и с делфи)

pilot

Код

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

ffi.cdef[[
    typedef struct { int a; int b; } MyStruct;
    __cdecl 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 delphi

Код
Library project1;

uses
  SysUtils,
  Classes;

Type
    TMyStruct = Record
        x: Integer;
        y: Integer;
    End;

procedure testf(Var r: TMyStruct; a: Integer; b: Integer); Cdecl;
Begin
r.x := a * b;
r.y := a div b;
End;

Exports
testf;

Begin
End.


всем спасибо (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



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

 

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