Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
|
lm2:ce:s_pl [2020/07/31 21:02] ruben создано |
lm2:ce:s_pl [2020/11/30 14:12] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ===== Плагины и их разработка ===== | ===== Плагины и их разработка ===== | ||
| + | |||
| + | Для расширения функционала платформы можно использовать плагины, | ||
| + | |||
| + | < | ||
| + | <Plugin ID="< | ||
| + | |||
| + | </ | ||
| + | |||
| + | Далее, после успешной загрузки плагина, | ||
| + | |||
| + | < | ||
| + | Get('< | ||
| + | |||
| + | </ | ||
| + | |||
| + | или | ||
| + | |||
| + | < | ||
| + | Set('< | ||
| + | |||
| + | </ | ||
| + | |||
| + | **Написание плагина (Windows)** | ||
| + | |||
| + | Создаем DLL, например через Visual Studio. Из DLL должны быть экспортированы функции: | ||
| + | |||
| + | < | ||
| + | "< | ||
| + | |||
| + | </ | ||
| + | |||
| + | если надо сгенерировать событие или строку | ||
| + | |||
| + | < | ||
| + | " | ||
| + | |||
| + | </ | ||
| + | |||
| + | если не надо. | ||
| + | |||
| + | **Заголовочный файл с прототипами этих функций (lmuLib.h): | ||
| + | <code cpp> | ||
| + | #pragma once | ||
| + | #include < | ||
| + | |||
| + | #ifdef LMULIB_EXPORT | ||
| + | #define LMULIB_API extern " | ||
| + | #else | ||
| + | #define LMULIB_API extern " | ||
| + | #endif | ||
| + | |||
| + | #pragma warning(push) | ||
| + | #pragma warning(disable: | ||
| + | |||
| + | LMULIB_API bool Set(const std:: | ||
| + | LMULIB_API std::string Get(const std:: | ||
| + | LMULIB_API std::string PollEvents(); | ||
| + | |||
| + | #pragma warning(pop) | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | ==== Написание плагина (Linux) ==== | ||
| + | |||
| + | Все аналогично. | ||
| + | |||
| + | **Заголовочный файл (lmuLib.h): | ||
| + | <code cpp> | ||
| + | #pragma once | ||
| + | #include < | ||
| + | |||
| + | extern " | ||
| + | bool Set(const std:: | ||
| + | std::string Get(const std:: | ||
| + | std::string PollEvents(); | ||
| + | } | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | Для того, чтобы скомпилировать динамически загружаемую библиотеку, | ||
| + | |||
| + | <code bash> | ||
| + | g++ -std=c++11 -c *.cpp -fPIC | ||
| + | g++ -shared -o libplugin.so -std=c++11 *.o | ||
| + | |||
| + | |||
| + | </ | ||