Я пытаюсь обернуть собственную библиотеку С++ с помощью swig, и я застрял в попытке преобразовать time_t
в C в long
в Java. Я успешно использовал swig с python, но пока не могу заставить приведенную выше карту типов работать на Java. В питоне это выглядит так
%typemap(in) time_t
{
if (PyLong_Check($input))
$1 = (time_t) PyLong_AsLong($input);
else if (PyInt_Check($input))
$1 = (time_t) PyInt_AsLong($input);
else if (PyFloat_Check($input))
$1 = (time_t) PyFloat_AsDouble($input);
else {
PyErr_SetString(PyExc_TypeError,"Expected a large number");
return NULL;
}
}
%typemap(out) time_t
{
$result = PyLong_FromLong((long)$1);
}
Я предполагаю, что карта с Java на C будет:
%typemap(in) time_t {
$1 = (time_t) $input;
}
Как мне завершить карту выхода с C на Java?
%typemap(out) time_t ???
Нужны ли мне карты типов, подобные приведенным ниже?
%typemap(jni)
%typemap(jtype)
%typemap(jstype)
Мне нужно это, чтобы обернуть функции C следующим образом:
time_t manipulate_time (time_t dt);