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

> [C/C++] Пример плагина для Lua.
Cockney
сообщение 21.9.2017, 21:57
Сообщение #1


********

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



Код элементарен. Хорошие примеры работы с API LUA можно найти в сорцах модуля math и др. , который поставляются с исходниками Lua. Особо не разобрался, т.к. протестировать нормально не могу, но вроде можно таким делом биндить классы из длл и другие фичи.

Сам собирал под VS 2017 CE. Кто сможет собрать и завести всю эту кухню - отпишите результат.



For GCC - Прикрепленный файл  gcc_ex.zip ( 1,91 килобайт ) Кол-во скачиваний: 821

For MSVC - Прикрепленный файл  PlugEx.zip ( 27,47 килобайт ) Кол-во скачиваний: 842


Сообщение отредактировал Cockney - 6.2.2019, 13:56
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Cockney
сообщение 18.2.2019, 13:29
Сообщение #2


********

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



Пишу как заметку для себя, но мало-ли кому пригодится в случае возникновения вопросов о странностях сборки с этим чудом.


Компилятор можно(я бы предпочел) ставить не из оболочки msys, а из файлика MinGW-W64-install.exe в начале списка.

Запускаем. Выбираем самую свежую версию.

Дальше вариантов выбора опций много и все они влияют на дальнейшее удовольствие работы с компилятором.

Если архитектура i686(x32), то можно выбрать 2 модели исключений : dwarf, sjlj
Если архитектура x86_64(x64), то можно выбрать уже seh и sjlj

Что это такое (справедливо для C++, не C):

1)dwarf - обработка исключений не в стиле винды. Если произойдет эксепшен в какой-то сторонней длл(собранной msvc, например), то из своей мы его не поймаем. Чуть лучше sjlj по скорости. В целом не рекомендуется.

2)sjlj - работает везде как часы. срезает 20% скорости кода.

3)seh - родной способ для винды. Работает только под x64 => создать dll плагин для пилота невозможно. Для остального софта - пожалуйста.

Что из этого следует :

1)Выбрать sjlj - компилятор становится двухцелевым, т.е. на машине х32 можно собрать бинарник для х64 и наоборот, но при этом теряем 20% скорости используя С++(потери будут и при сборках x32->x32, x64->x64).

2)Выбрать seh - можем собирать только х64 бинарники без минуса к скорости и взаимодействия с пилотом.

3)Собирать по старинке MSVC - все работает быстро на seh, но идет привязка к версии винды.

4)Не использовать C++ вообще (only gcc). Быстро, модно, молодежно. Нет всех плюсов C++.

Threads можно выбрать что угодно. Я пока не нашел отличий, да и не искал.

После установки из папки взять mingw64 и закинуть в папку с msys2(удалить в ней перед этим mingw64).
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
Cockney   [C/C++] Пример плагина для Lua.   21.9.2017, 21:57
Cockney   И да, в приоритете, если возможно - делайте сборку...   21.9.2017, 22:21
Cockney   Обновил сорцы. Теперь собирается нормально. Добави...   11.2.2018, 14:59
Cockney   Год медитаций позволил мне наконец-то собрать плаг...   6.2.2019, 13:54
DarkMaster   Первый раз вижу нормальный ман по сброке в MSYS/Mi...   6.2.2019, 14:05
Cockney   Какая dll и к чему подключается ? Если dll вообщ...   6.2.2019, 14:12
DarkMaster   winapi биндинги через ffi уже созданы. https://lu...   6.2.2019, 14:19
Cockney   Спорное утверждение. dll уже работает на максим...   6.2.2019, 14:22
DarkMaster   За что тебе безусловно спасибо. :thanks: Я прост...   6.2.2019, 22:03
Cockney   Ни в коем случае.   6.2.2019, 23:24
rinat84   :D то чувство когда собираешь из исходников 3 день...   7.3.2019, 3:20
Cockney   Успешно собран luasocket под mingw. Работает ?   27.3.2019, 21:58
DarkMaster   Кхм... Даж стыдно как-то стало, что не отписался. ...   22.1.2020, 18:33


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

 

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