🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #153863

Callbacki a JNI

#153863
From: Borneq
Date: Sat, 07 Sep 2013 19:53
15 lines
1899 bytes
Zrobiłem przykład https://github.com/borneq/JNIdemo
gdzie metoda w Javie wołana jest jako callback z DLL w C++. Jednak nie jest 
to prawdziwy callback, o który mi chodzi, taki, który by sięgnął głębiej do 
innej biblioteki bez źródeł z której korzysta ta moja używająca JNI. W Javie 
callbacki to metody interfejsu, a w C++, przynajmniej jeśli chodzi o 
bibliotekę którą chcę obsługiwać, są to wskaźniki na funkcje (nie metodę 
obiektu). Te wskaźniki ustawiane są przy inicjacji DLL.
W JNI wołam metodę poprzez env->CallVoidMethod(param1, method1, i) a nie po 
wskaźniku, trzeba by chyba w metodzie callbacka C++ to wywołać, ale nie znam 
ani env ani param1 ani method1. Musiały by być te zmienne zapamiętane 
globalnie? Jeśli chodzi o method1, to dałoby chyba radę, natomiast nie można 
by zapamiętac env podczas inicjalizacji, bo po wyjściu z funkcji nie miało 
by sensu. Chyba że ustawianie callbacka odbywało by się dopiero w 
nativeLongOperation zamiast tak jak w bibliotece którą chcę obsługiwać - 
podczas inicjacji. 
Technical Details
Message-ID: <l0g07k$53g$1@node1.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: "Borneq" <borneq@antyspam.hidden.pl>
Newsgroups: pl.comp.lang.java
Subject: Callbacki a JNI
Date: Sat, 7 Sep 2013 21:53:22 +0200
Organization: ATMAN - ATM S.A.
Lines: 16
Message-ID: <l0g07k$53g$1@node1.news.atman.pl>
NNTP-Posting-Host: 91.239.205.62
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1378583604 5232 91.239.205.62 (7 Sep 2013 19:53:24 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Sat, 7 Sep 2013 19:53:24 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit