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

 
Ответить в эту темуОткрыть новую тему
> подскажите хело ворлд плагина делфи
trico
сообщение 31.10.2019, 23:09
Сообщение #1


**

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



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

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


а в пилоте

Код

#r = function(1,1)


Не посылайте на пример плагина, я не понимаю примитива как вызывать функци. из плагина и получать в нее ответ. дайте пожалуйста РАБОЧИЙ скелет длл + скрипт для понимания.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 1.11.2019, 0:05
Сообщение #2


********

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



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)

Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
trico
сообщение 1.11.2019, 0:16
Сообщение #3


**

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



Цитата(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 получить... тот же скриншот(реализовано) и цвет пикселя... только никак не добьюсь чтобы пилот увидел эти функции... ну попробую на луа, спасибо за ответ
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
trico
сообщение 1.11.2019, 0:42
Сообщение #4


**

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



да, работает. спасибо. это уже обнадеживает, пошел читать про луа
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 1.11.2019, 8:30
Сообщение #5


********

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



На луа как раз и можно на прямую обращаться к 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


Там что-то неоднократно менялось, и учитывая, что это пережиток прошлого, лучше использовать луа.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
trico
сообщение 1.11.2019, 10:34
Сообщение #6


**

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



и встретил грабли... дайте луа 5.2
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 1.11.2019, 14:39
Сообщение #7


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



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

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

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


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
trico
сообщение 1.11.2019, 15:29
Сообщение #8


**

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



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

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


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

а по теме - за помощь спасибо, плагин написан, скачать можно тут ->
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.11.2019, 12:28
Сообщение #9


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



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

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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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