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

 
Ответить в эту темуОткрыть новую тему
> [C#] Пример плагина для Lua.
Cockney
сообщение 13.7.2019, 0:24
Сообщение #1


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20894
Пользователь №: 16.156



Технология полностью не отточена. Если не гонять огромные строки - скорость приличная + большинство удобств .Net.


В приложенном архиве - демонстрационный проект (VS2017 Community, .Net 4.5).

Для создания нового проекта :

1) Ознакомиться, установить.
2) Когда откроется GUI, выставить галочки как на скринах.

Далее смотрим туториалы расположенный там же. Требуется добавить конфигурации сборки. Для пилота надо x86.

Скрипт

Код

--lua
log("clear")
local ffi = require("ffi")
local sharp_plugin = ffi.load("csharp_plugin.dll")
ffi.cdef[[
            typedef struct RGBStruct { int R, G, B; } rgb_s;
            __cdecl const char* hello(const char* arg);
            __cdecl rgb_s* rgb(int r, int g, int b);
            __cdecl int mymul(int argc, ...);
            __cdecl void fill(int cnt, int* buffer);
        ]]
--Struct test
local rgbRet = sharp_plugin.rgb(4, 1, 213)
log(rgbRet.R)
log(rgbRet.G)
log(rgbRet.B)
--String test
log(ffi.string(sharp_plugin.hello("Ivan")))
--Vargs test
local arr = {}
for i=0, 2 do
    arr[i] = 2
end
log(sharp_plugin.mymul(3, ffi.new("int[3]", arr)))
--Out arg test
local data = ffi.new("int[32]")
sharp_plugin.fill(32, data)
for i=0, 31 do
    log(data[i])
end



Поправляйте.


Прикрепленные файлы
Прикрепленный файл  csharp_plugin.zip ( 4,27 мегабайт ) Кол-во скачиваний: 389
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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