Автор: trico 31.10.2019, 23:09
всем привет. на 10ке некоторые нужные функции не работают типа get color. Хочу написать плагин на делфи для этой функции.
Дело полезное, но руки опускаются от непонимания взаимодействия пилот -> длл.
Прошу, дайте "хелло ворлд" проект пилот-плагин, чтобы в длл:
Код
function (a,b):integer
begin
result: a + b;
end;
а в пилоте
Код
Не посылайте на пример плагина, я не понимаю примитива как вызывать функци. из плагина и получать в нее ответ. дайте пожалуйста РАБОЧИЙ скелет длл + скрипт для понимания.
Автор: 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?