Comments 8
" пример с использованием магических констант как делать не надо " - ну и не только в константах магических дело: если бы вы вместо чисел использовали именованные контстанты типа E_LFANEW это тоже было бы не очень, потому что нужно учитывать поле SizeOfOptionalHeader
Спасибо за труд! Было бы отлично, если бы подобная либа была и под библиотеки на Linux!
Так-то есть ffi от luajit, и alien который lua обёртка для libffi, вполне себе кроссплатформенные.
Я слишком туп оказался чтобы их под виндами с lua54 собрать, пришлось пилить своё :)
Там "платформеннозависимого" кода не сильно много (собственно всё вынесено в win64.c), только пара функций, которые ассембленый код с учётом calling convention генерят, в них только порядок запихивания аргументов в стэк/регистры поменять, а остальное dlsym/GetProcAddress и mprotect/VirtualProtect только названиями отличаются, может когда-нибудь руки дойдут.
upd: теперь есть и под linux, и возможно bsd, там отличий вроде не должно быть.
Lua FFI