Toon posts:

[JAVA] JNI

Pagina: 1
Acties:

Verwijderd

Topicstarter
Is er iemand die een ideetje heeft voor volgemd probleem

ik heb een
class temp{
int i= 150;
String s = "test";
}

en in een andere klasse definieer ik
public native void drukAf(Temp t);

hoe moet ik de cpp versie nu implementeren zodoende dat ik de velden van temp kan accessen

ook zou het handig zijn te weten hoe ik zulke klassen gelijk Temp kan teruggeven in een cpp methode

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Dit klinkt eerlijk gezegd wel heel erg als een "Hello world" van JNI ... Heb je al in de Java Tutorial gekeken?

http://java.sun.com/docs/books/tutorial/native1.1/index.html

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
zeker
en er worden vvoorbeelden gegeven om strings en arrays door te geven

maar niet hoe je objecten (van een zelfgemaakte klasse ) die als parameter worden doorgegeven kan accessen

Verwijderd

Topicstarter
dit heb ik allemaal al doorgenomen

maar dit is een functie die zich in die bepaalde klasse bevindt die wordt aangeroepen

het probleem is

class temp{
int i= 150;
String s = "test";
}

class test{
public native void drukAf(Temp t);
public static void main (String [] args)
{
Temp p = new Temp();
test t = new test().drukAf(p);
}
}


hoe moet ik deze method
public native void drukAf(Temp t);
nu implementeren, zodoende dat ik hierin aan de variabelen van Test.s en Test.i kan?

  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Je wilt dus bij de members komen van je object. Dit dus:
http://java.sun.com/docs/...1/implementing/field.html

Of is dit het toch nog niet?

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Noble_Paladin: dit heb ik allemaal al doorgenomen
Een politicus zou zeggen dat je ons niet goed informeert, beleefde mensen zeggen dat je een wat ruime fantasie hebt, botte mensen zeggen dan dat je liegt.

http://java.sun.com/docs/...1/implementing/field.html

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
sorry dubbele post

[ Voor 98% gewijzigd door Verwijderd op 12-03-2003 13:41 ]


Verwijderd

Topicstarter
class FieldAccess {
static int si;
String s;

private native void accessFields();
public static void main(String args[]) {
FieldAccess c = new FieldAccess();
FieldAccess.si = 100;
c.s = "abc";
c.accessFields();
System.out.println("In Java:");
System.out.println(" FieldAccess.si = " + FieldAccess.si);
System.out.println(" c.s = \"" + c.s + "\"");
}
static {
System.loadLibrary("MyImpOfFieldAccess");
}
}


de native method staat dus IN de klasse
de aanroep gebeurt op (*env)->GetStaticFieldID(env, cls, "si", "I");

ik geef niu een ander object door aan de native functie
nativfunctiecpp(*env env, object o , object temp)

dit temp object, hieruit moet ik de data halen

is dat dan op dezelfde manier als
(*env)->GetStaticFieldID(env, cls, "si", "I");

door temp.GetStaticFieldID(env, cls, "si", "I");


btw,
ik heb die cursus gelezen, maar deze concrete vraag vind ik dus niet terug

ik denk dat ik me misschien niet goed uitdruk ofzo
maar ik moet dus uit temp
welk een object is van deze klasse
class temp{
int i= 150;
String s = "test";
}

hieruit moet ik de data halen
de native methode staat NIET in class temp

dus moet het op deze manier dan?
temp.GetStaticFieldID(env, cls, "si", "I");

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

mbravenboer schreef op 12 March 2003 @ 13:15:
[...]

Een politicus zou zeggen dat je ons niet goed informeert, beleefde mensen zeggen dat je een wat ruime fantasie hebt, botte mensen zeggen dan dat je liegt.

http://java.sun.com/docs/...1/implementing/field.html
En anderen kunnen niet populaire dingen zeggen zonder dat ze het letterlijk zeggen :) :P
Pagina: 1