ага спасибо за совет но я еще плагины в общем не умею писать если бы вы товарищь выложили гайдик только нормальный как писать плагин был бы очень доволен и вам бы спасибо за него..)
Дядя supernewbie я вам очень блогодарен.
Но я непонел чуток: Оффтоп
function OnCallMethod(const ConnectId, ScriptId: integer;const MethodName: String;var Params,FuncResult: Variant ): Boolean; stdcall;
begin
Result := false;
if MethodName='PLAY' then
begin
Play(params[0]);
Result:=true;
exit;
end;
что там непонятного то, OnCallMethod вызывается когда пх ищет процедуру по имени, вызывает её с параметрами ConnectId - ид соединения(хендл сокета), дальше ScriptId - полюбому нужен для каких-нибудь пхашных апишек, MethodName - имя метода заглавными символами, Params - массив вариантов в варианте, FuncResult - то что вернется в скрипт, опять же может быть че угодно т.к. вариант, и возвращает boolean который отвечает за то чтобы пх угоманилась и не искала функцию, true - захендлили запрос, false - продалжай искать
ну эт как я понял, мб че-то не так, но это полюбому не существенно
собсна берем имя метода, сверяем с нашими именами, если есть совпадение - грим что захендлили и хендлим, в данном случае я смотрю что пх ищет метод с именем PLAY - проигрываю музон (хендлю), грю что всё путём, метод нашелся - Result:=true; , и сваливаю к чертям из функции - exit;
__________________ Начало.
За это сообщение supernewbie нажился 2 спасибками от:
library Strin;
uses
FastMM4 in'fastmm\FastMM4.pas',
FastMM4Messages in'fastmm\FastMM4Messages.pas',
variants,
usharedstructs in'units\usharedstructs.pas',
Classes;
var
ps:TPluginStruct;
hwnd:cardinal;
FunctionStr(N:integer):String;
begin
Result:=VarToStr(N);
end;
procedure OnLoad; stdcall;
begin
hwnd:=AllocateHWnd(nil);
end;
procedure OnFree; stdcall;
begin
DeallocateHWnd(hwnd);
end;
function GetPluginInfo(const ver: cardinal): PChar; stdcall;
begin
Result:='My first function in dll';
end;
function SetStruct(const struct: PPluginStruct): Boolean; stdcall;
begin
ps:=struct^;
Result:=True;
end;
Procedure OnRefreshPrecompile; stdcall;
begin
ps.UserFuncs.Add('Function str(N:Integer):String');
end;
function OnCallMethod(const ConnectId, ScriptId: integer;
const MethodName: String; // имя функции в верхнем регистреvar Params, // параметры функции
FuncResult: Variant// результат функции): Boolean; stdcall; // если вернёт True то дальнейшая// обработка функции прекратитьсяbegin
Result := false;
if MethodName='str'thenbegin
FuncResult:=str(params[0]);
Result:=True;
end;
end;
exports
GetPluginInfo,
SetStruct,
OnCallMethod,
OnRefreshPrecompile,
OnLoad,
OnFree;
beginend.
goodvin1709, ваще-т никакого выхода из цикла там нет
Добавлено через 1 минуту
фастскрипт сам по себе медленный, циклы там ваще нежелательны
ну если делать бикубическую интерполяцию пикселей на изображении и сортировки массивов [0..100500] то да. У меня весь цикл фс выполняетса за 0мс и ниче не грузит. Точнее не позволяет узнать gettickcount.
Почему когда я пробывал работать с пакетами там всегда либо крит либо крит.что за даже демку пробывал всунуть сервно крит.раз 100 компилил
99% крипт или не пахало.