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

> Lua. Вызов колбека из сторонней библиотеки
Cockney
сообщение 2.3.2024, 21:51
Сообщение #1


********

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



Я возможно знаю ответ, но хочу убедиться в его верности.

Имеется код

Цитата

--lua
exec('tcpserver.exe')
local pid = errorlevel()
wait(500)
exec('tcpclient.exe')
local ffi = require("ffi")
local mininet = ffi.load("libwpe_proxy")

ffi.cdef[[
int wpe_inject(const char *libwpePath,
unsigned int pid,
unsigned int dataChannelBlocksCount,
unsigned int dataChannelBlockSize,
unsigned int commandChannelBlocksCount,
unsigned int commandChannelBlockSize
);

typedef int32_t(*packet_handler)(const char* sourceHost, uint32_t sourceHostSize, uint16_t sourcePort, const char* destHost, uint32_t destHostSize, uint16_t destPort, const uint8_t* data, uint32_t dataSize);

int wpe_listen(unsigned int pid, packet_handler);
]]


mininet.wpe_inject("libwpe.dll", pid, 3, 65535, 15, 10000)

function handler(sourceHost, sourceHostSize, sourcePort, destHost, destHostSize, destPort, data, dataSize)
local message = 'Source host: ' .. ffi.string(sourceHost, sourceHostSize) .. '\t, source port: '.. sourcePort .. '\tdest host: ' .. ffi.string(destHost, destHostSize) .. '\tdest port: ' .. destPort .. '\t data size: ' .. dataSize
--log('Source host: ' .. ffi.string(sourceHost, sourceHostSize) .. '\t, source port: '.. sourcePort .. '\tdest host: ' .. ffi.string(destHost, destHostSize) .. '\tdest port: ' .. destPort .. '\t data size: ' .. dataSize)
return 0
end

mininet.wpe_listen(pid, handler)

while true do
wait(1000)
end


Что он делает - не суть важно, внимание к функции handler, которая передается в библиотеку и вызывается этой же библиотекой в подходящий момент,

в текущем варианте - заполнение локальной переменной + возврат все ок работает, а вот если добавить любую функцию вывода инфы - msg, log то пилот просто падает.

Ваши идеи ?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



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

 

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