Пример плагина на одном из самых простых языков - бейсике.
Код
Код
#CountFunct = 4; Число фукнций плагина.
Structure InitStruct
FunctionCount.l
Array FunctionNames.s(#CountFunct-1)
EndStructure
Structure ParamStruct
WindowHandle.i
WindowPID.i
Reserved.i
ParamString.s
ParamStringOrig.s
Result.s{1048576}
EndStructure
EnableExplicit; Обязательная декларация переменных.
Global InitStruct.InitStruct
ProcedureDLL InitPlugin(App, Scr, *Version.Double)
With InitStruct
If *Version\d >= 2.37
\FunctionCount = #CountFunct
\FunctionNames(0) = "Function1"; Имена экспортируемых фунукций плагина.
\FunctionNames(1) = "Function2"
\FunctionNames(2) = "Function3"
\FunctionNames(3) = "Function4"
Else
\FunctionCount = 0;
*Version\d = 2.37
EndIf
EndWith
ProcedureReturn InitStruct
EndProcedure
ProcedureDLL Function1(*ParamStruct.ParamStruct)
Protected r
r=Val(StringField(*ParamStruct\ParamString, 1, ",")) + Val(StringField(*ParamStruct\ParamString, 2, ","))
*ParamStruct\Result = "Param1 + Param2 = " + r
EndProcedure
ProcedureDLL Function2(*ParamStruct.ParamStruct)
*ParamStruct\Result = "Выполнена функция 2"
EndProcedure
ProcedureDLL Function3(*ParamStruct.ParamStruct)
*ParamStruct\Result = "Выполнена функция 3"
EndProcedure
ProcedureDLL Function4(*ParamStruct.ParamStruct)
*ParamStruct\Result = "Выполнена функция 4"
EndProcedure
ProcedureDLL DonePlugin()
EndProcedure
Код довольно прост и основан на примере из справки.
Чтобы процедура была доступна вне dll ее нужно объявлять с DLL в конце ключевого слова, т. е. ProcedureDLL.
Первая фукнция (Function1) складывает числа переданные в 2 параметрах и возращает результат. Остальные только сообщают номер своей фукнции.
Для компиляции необходима среда программирвоания PureBasic версии не выше 5.24. В версиях новее
выпилен ascii (остался только юникод, который не поддерживает UO Pilot). Из-за чего код будет сложнее из-за необходимости конвертирования с ascii в unicode иобратно.
Скачать версию 5.24
https://www.upload.ee/files/14232929/PureBa...Win_x86.7z.htmlЭто portable версия и после распаковки архива готова к работе. Запускается с помощью
PureBasic Portable.exeВ редактор кода нужно скопировать исходник dll и открыть окно настроек компилятора из меню Компилятор -> Настроки компилятора. В нем выбрать формт исполняемого файла "Shared dll". Настройки сохранятся в исходнике на текущей вкладке.
После скомпилировать dll через меню Компилятор -> Создать приложение.
Тестовый скрипт
Код
Msg PB_Plug.Function1(2, 8)
Msg PB_Plug.Function2()
Msg PB_Plug.Function3()
Msg PB_Plug.Function4()
exit