Инструменты пользователя

Инструменты сайта


lm2:ce:s_pl

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
lm2:ce:s_pl [2020/08/04 15:43]
ruben
lm2:ce:s_pl [2020/11/30 14:12] (текущий)
Строка 21: Строка 21:
  
 </code> </code>
-==== Написание плагина (Windows) ==== 
  
-Создаем DLL, например через Visual Studio. Из DLL д.бэкспортированы функции: Set(...), Get(...) и PollEvents(...). Функции Get/Set вызываются напрямую через lua скрипт. PollEvents вызывается автоматически, перед рендером каждого кадра. Она должна возвратить строку, вида: "<какой-то_адрес>=<какое-то_значение>"если надо сгенерировать событие или строку "[NULL_STRING]"если не надо.\\ +**Написание плагина (Windows)** 
-Заголовочный файл с прототипами этих функций (lmuLib.h):\\ + 
-#pragma once\\+Создаем DLL, например через Visual Studio. Из DLL должны быть экспортированы функции: Set(), Get() и PollEvents(). Функции Get/Set вызываются напрямую через lua скрипт. PollEvents вызывается автоматически, перед рендером каждого кадра. Она должна возвратить строку, вида: 
 + 
 +<code> 
 +"<какой-то_адрес>=<какое-то_значение>" 
 + 
 +</code> 
 + 
 +если надо сгенерировать событие или строку 
 + 
 +<code> 
 +"[NULL_STRING]" 
 + 
 +</code> 
 + 
 +если не надо. 
 + 
 +**Заголовочный файл с прототипами этих функций (lmuLib.h):** 
 +<code cpp> 
 +#pragma once
 #include <string> #include <string>
  
-#ifdef LMULIB_EXPORT\\ +#ifdef LMULIB_EXPORT 
-#define LMULIB_API extern "C" __declspec(dllexport)\\ +  #define LMULIB_API extern "C" declspec(dllexport) 
-#else\\ +#else 
-#define LMULIB_API extern "C" __declspec(dllimport)\\+  #define LMULIB_API extern "C" declspec(dllimport)
 #endif #endif
  
-#pragma warning(push)\\+#pragma warning(push)
 #pragma warning(disable:4190) #pragma warning(disable:4190)
  
-LMULIB_API bool Set(const std::string& _param);\\ +LMULIB_API bool Set(const std::string& _param); 
-LMULIB_API std::string Get(const std::string& _addr);\\+LMULIB_API std::string Get(const std::string& _addr);
 LMULIB_API std::string PollEvents(); LMULIB_API std::string PollEvents();
  
-#pragma warning(pop)\\ +#pragma warning(pop) 
-Написание плагина (Linux)\\ + 
-Все аналогично. Заголовочный файл (lmuLib.h):\\ + 
-#pragma once\\+</code> 
 + 
 +==== Написание плагина (Linux) ==== 
 + 
 +Все аналогично. 
 + 
 +**Заголовочный файл (lmuLib.h):** 
 +<code cpp> 
 +#pragma once
 #include <string> #include <string>
  
 extern "C" { extern "C" {
 +  bool Set(const std::string& _param);
 +  std::string Get(const std::string& _addr);
 +  std::string PollEvents();
 +}
  
-bool Set(const std::string& _param);\\ 
-std::string Get(const std::string& _addr);\\ 
-std::string PollEvents(); 
  
-}\\ +</code> 
-Для того, чтобы скомпилировать динамически загружаемую библиотеку, используем примерно такие команды:\\ + 
-g++ -std=c++11 -c *.cpp -fPIC\\+Для того, чтобы скомпилировать динамически загружаемую библиотеку, используем примерно такие команды: 
 + 
 +<code bash> 
 +g++ -std=c++11 -c *.cpp -fPIC
 g++ -shared -o libplugin.so -std=c++11 *.o g++ -shared -o libplugin.so -std=c++11 *.o
 +
 +
 +</code>
  
  
lm2/ce/s_pl.1596545012.txt.gz · Последнее изменение: 2020/11/30 14:12 (внешнее изменение)