Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ Плагины и доп. ПО _ подскажите хело ворлд плагина делфи

Автор: trico 31.10.2019, 23:09

всем привет. на 10ке некоторые нужные функции не работают типа get color. Хочу написать плагин на делфи для этой функции.
Дело полезное, но руки опускаются от непонимания взаимодействия пилот -> длл.
Прошу, дайте "хелло ворлд" проект пилот-плагин, чтобы в длл:

Код

function (a,b):integer
begin
result: a + b;
end;


а в пилоте

Код

#r = function(1,1)


Не посылайте на пример плагина, я не понимаю примитива как вызывать функци. из плагина и получать в нее ответ. дайте пожалуйста РАБОЧИЙ скелет длл + скрипт для понимания.

Автор: Cockney 1.11.2019, 0:05

Delphi

Код
 function sum(a : integer, b : integer) : integer; cdecl;
begin
   result = a + b;
end;


Pilot lua
Код


local ffi = require("ffi")
local lib = ffi.load("delphi_plugin.dll")

ffi.cdef[[
   __cdecl int sum(int a, int b);
]]

local calculated = lib.sum(3,3)


Автор: trico 1.11.2019, 0:16

Цитата(Cockney @ 31.10.2019, 23:05) *

Delphi
Код
 function sum(a : integer, b : integer) : integer; cdecl;
begin
   result = a + b;
end;


Pilot lua
Код


local ffi = require("ffi")
local lib = ffi.load("delphi_plugin.dll")

ffi.cdef[[
   __cdecl int sum(int a, int b);
]]

local calculated = lib.sum(3,3)




печалька... Не охота все скрипты на луа переписывать. легче не работающие функции через directX получить... тот же скриншот(реализовано) и цвет пикселя... только никак не добьюсь чтобы пилот увидел эти функции... ну попробую на луа, спасибо за ответ

Автор: trico 1.11.2019, 0:42

да, работает. спасибо. это уже обнадеживает, пошел читать про луа

Автор: Cockney 1.11.2019, 8:30

На луа как раз и можно на прямую обращаться к directx и системным функциям без написания промежуточной dll.


Тем не менее, вот выдержка из справки по работе с плагинами

'

добавил поддержку плагинов. загружаются из 'Plugins\*.dll' при старте пилота. имя файла не должно содержать точек и других нелегальных для пилота символов. список функций всех загруженых плагинов расположен в соответствующем подпункте меню, вызываемому кликом правой кнопки мыши в скрипте. имя функции формируется из имени файла плагина и собственно имени самой функции, разделенных точкой. параметры указываются в следующих за именем круглых скобках. плагин возвращает одну строку, длиной до 32кб. символ с кодом '#00' является концом строки. комбинация символов с кодами '#0d0a' или '\n' являются управляющими, для увеличения первой размерности массива (строк). символ с кодом '#09' является управляющим, для увеличения второй размерности массива (столбцов). т.е. возвращаемое плагином значение вида '1#092#093\n4#095#096', где '#09' означает символ с кодом 9, создаст массив 2х3 следующего содержания.
1 2 3
4 5 6
пример:
set $a myPlugin.function1 (много много параметров) // в строковой переменной $a будет всё что вернет плагин
set %a myPlugin.function1 (много много параметров) // возвращаемое плагином значение будет преобразовано в массив %a


Там что-то неоднократно менялось, и учитывая, что это пережиток прошлого, лучше использовать луа.

Автор: trico 1.11.2019, 10:34

и встретил грабли... дайте луа 5.2

Автор: Fors1k 1.11.2019, 14:39

Цитата(trico @ 31.10.2019, 23:09) *

всем привет. на 10ке некоторые нужные функции не работают типа get color.

А не будет ли проще поставить нормальную рабочую win10, так как у всех пилот работает без проблем, независимо от win7/8/10, что говорит об отсутствии проблем работоспособности пилота на какой-либо версии винды? И раз твоя сборка мешает работе пилота, то переустановка системы, вполне вероятно, сможет решить и иные проблемы.

Автор: trico 1.11.2019, 15:29

Цитата(Fors1k @ 1.11.2019, 13:39) *

А не будет ли проще поставить нормальную рабочую win10, так как у всех пилот работает без проблем, независимо от win7/8/10, что говорит об отсутствии проблем работоспособности пилота на какой-либо версии винды? И раз твоя сборка мешает работе пилота, то переустановка системы, вполне вероятно, сможет решить и иные проблемы.


ну так решайте, с пилотом. не обижайтесь. 1903 официальная винда, обновлена. установлена 2 месяца назад.
еще проблема может скрываться в конкретной игре, клиенте, защите. К примеру: раппелз спейс пиратка - скрин - квадрат малевича, getcolor 0 во всех чайлдах и парентах от основного хендла и от рамки; send_down и все другие варианты send'a не приводят ГГ в движение, только на панели нажимаются горячие кнопки.
Ни бубен, ни парад планет не помог, только делфи верный друг всегда работает.

а по теме - за помощь спасибо, плагин написан, скачать можно https://forum.uokit.com/index.php?showtopic=69910

Автор: DarkMaster 6.11.2019, 12:28

Цитата
и встретил грабли... дайте луа 5.2

А в чем грабли и зачем 5.1?

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)