[Java lista] JNI

Aron Gombas aron at demoscene.hu
2007. Már. 9., P, 20:34:44 CET


Az meg nem derult ki szamomra, hogy milyen platformrol van szo, de nem az
.obj (vagy .o *nix-on), ami Neked kell.
Ami Neked kell az a .dll (vagy .so), ami az .exe-hez hasonloan linkelheto,
csak nincs main() belepesi pontja.

Szoval:
1. fordits le minden: *.cpp -> *.obj
2. egyszer linkelj: *.obj -> mymodule.dll
3. ezt a DLL-t kell a JNI szamara lathatova tenned (a win a DLL-eket a
system32-bol vagy az executable sajat konyvtarabol tolti be (szerintem a
DLL konyvtarat tudod vhogy a JNI-nek bealltitani))

JA, most latom win32-rol van szo, akkor stimmel, amit mondtam.
 Regards,

 Aron

 java_blog.hu: http://www.midori.hu/en/blog_hu.html

On Fri, 9 Mar 2007, [iso-8859-2] Maglódszki Viktor wrote:

> "Szoval a .cpp-bol kell .obj-ra
> forditani, amjd abbol executable-t linkelni
> "
>
> de a JNI-nek az obj kell ?
>
> ----- Original Message -----
> From: "Aron Gombas" <aron at demoscene.hu>
> To: <javalist at javagrund.hu>
> Sent: Friday, March 09, 2007 4:29 PM
> Subject: Re: [Java lista] JNI
>
>
> Nono, a .h-t nem kell leforditani, az egy header file, ami a modulok
> kozti interface-t definialja (jo esetbe). Szoval a .cpp-bol kell .obj-ra
> forditani, amjd abbol executable-t linkelni
>  Regards,
>
>  Aron
>
>  java_blog.hu: http://www.midori.hu/en/blog_hu.html
>
> On Thu, 8 Mar 2007, [iso-8859-2] Szendi Varga János wrote:
>
> > A .cpp-t és a .h -t is le kell fordítanod, mert ez csak a forráskód.
> >
> > Olyan mintha java-ban .java fájlra hivatkoznál, és nem a .class -ra.
> >
> >
> >
> >   _____
> >
> > From: javalist-bounces at javagrund.hu [mailto:javalist-bounces at javagrund.hu]
> > On Behalf Of Maglódszki Viktor
> > Sent: 2007. március 8. 17:20
> > To: java list
> > Subject: [Java lista] JNI
> >
> >
> >
> > Sziasztok !
> >
> >
> >
> > Egyszer már emlitettem, de azóta történt némi előrelépés.
> >
> >
> >
> > Szeretném lekérdezni az IdleTime-ot windows-ban.
> >
> >
> >
> > Némi utánaolvasás után találtam néhány C / C++ kódot, ami a
> > GetLastInputInfo
> > windows függvényt hivja meg.
> >
> > De C++ hoz egyáltalán nem értek.
> >
> >
> >
> > Aztán megtaláltam a LimeWire teljes forrását, ami szintén leéri ezt az
> > értéket.
> >
> > A forrásban megtaláltam a cpp kódot, header-t, és a java osztályt ami
> > összeköti ezt JNI-vel.
> >
> >
> >
> > Jelenleg ott akadtam el, hogy van egy betöltés a Java osztályban (a
> > limewire
> > api-ben a SystemUtils.java fájl)
> >
> > System.loadLibrary("SystemUtilities");
> >
> >
> >
> > ilyet még nem használtam és nekem a javadoc-ból sem derült ki, hogy ez hol
> > fogja keresni?
> >
> > ott ahol fut a program ezt mintha láttam volna valahol.
> >
> > van nekem SystemUtilities.cpp -m (szintén a limewire api-ból) de azt hiába
> > másolom be a könyvtáraba nem találja
> >
> > végülis a teljes kódrész:
> >
> > static {
> >
> > boolean canLoad;
> >
> > try {
> >
> > // Only load the library on systems where we've made it.
> >
> > if(OSUtils.isMacOSX() || OSUtils.isWindows()) {
> >
> > System.loadLibrary("SystemUtilities");
> >
> > }
> >
> > canLoad = true;
> >
> > } catch(UnsatisfiedLinkError noGo) {
> >
> > canLoad = false;
> >
> > }
> >
> > isLoaded = canLoad;
> >
> > }
> >
> > igy ez false-t ad vissza és nem tudom lekérdezni az idletime-ot mivel a
> > lekérdező függvény elötte megnézni, hogy a isLoaded true-e
> >
> >
> >
> > tehát akkor hová kellene tennem, hogy a loadLibrary megtalálja?
> >
> > ha .cpp vagy .h -t keresi, akkor miért nem úgy kiterjesztéssel hivatkozik
> > rá?
> >
> >
> >
> > köszönöm
> >
> > MV
> >
> >
> >
> > _____________ NOD32 2102 (20070308) Információ _____________
> >
> > Az üzenetet a NOD32 antivirus system megvizsgálta.
> > http://www.nod32.hu
> >
> >
>
>
>
> --------------------------------------------------------------------------------
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>
>
>
> --------------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.446 / Virus Database: 268.18.8/714 - Release Date: 2007.03.08.
> 10:58
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>


További információk a(z) Javalist levelezőlistáról