Функция обратного вызова JNA с дополнительным аргументомJAVA

Программисты JAVA общаются здесь
Anonymous
Функция обратного вызова JNA с дополнительным аргументом

Сообщение Anonymous »

У меня проблемы с тем, чтобы все сработало. Я пытаюсь вызвать функцию, которая принимает в качестве аргументного указателя функцию и константу*. Мой код C выглядит так: < /p>

Код: Выделить всё

typedef void (*example_ptr)(const char*);

void exampleMethod(const char* value)
{
printf("This is the string: %s\n", value);
}

void example_triggerCallback(const example_ptr func, const char* str) {
printf("provided str: %s", str);
func(str);
}
< /code>

Чтобы сделать это, я написал такую ​​обертку JNA в Java < /p>

public class Main {

public interface TestLibrary extends Library {

TestLibrary INSTANCE = (TestLibrary)
Native.loadLibrary("libtest",
TestLibrary.class);

interface ExampleCallback extends Callback {
void invoke(String str);
}

class ExampleCallbackImpl implements ExampleCallback {
public void invoke(String str) {
System.out.println("example: " + str);
}
}

void example_triggerCallback(ExampleCallback callback, String str);
}

public static void main(String[] args) {

TestLibrary testLibrary = TestLibrary.INSTANCE;
final TestLibrary.ExampleCallbackImpl callback = new TestLibrary.ExampleCallbackImpl();
testLibrary.example_triggerCallback(callback, "testiddy test test");
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что printf in example_triggercallback в C -коде фактически называется, и я получаю выход на консоли Java, но я действительно пытаюсь достичь здесь, так это то, что я хотел бы пройти от Java Site Tafter для примера из Code> из Co Code> The Co Co Co Co Co Co Co Co Co Co Co Co Co Co Co Co Co Come Прямо сейчас func (str) , кажется, игнорируется. Чего мне здесь не хватает?

Подробнее здесь: https://stackoverflow.com/questions/522 ... l-argument

Вернуться в «JAVA»