Я пытаюсь создать оболочку JNI для следующих функций в C:
int err = new_instance(const char* name, instance_t* instance);
name
- ввод, instance
- вывод
int err = get_value(const instance_t instance, int *val);
instance
- ввод, val
- вывод
где instance_t
определяется как:
typedef void* instance_t;
Я все потерял в руководстве SWIG для Java, поскольку он не просто поддерживает входные параметры в качестве типа вывода. У меня не было никаких проблем с оболочкой Python (показано ниже).
Каков правильный способ использования typemap в Java?
// instance_t [argout]
%typemap(in, numinputs=0) instance_t* instance (instance_t temp = 0) {
$1 = &temp;
}
%typemap(argout) instance_t *instance {
%append_output(PyLong_FromLongLong((long long)* $1));
}
// instance_t [in]
%typemap(in) instance_t instance {
$1 = (instance_t) PyLong_AsLongLong($input);
}