Laczenie Javy i C++

0

Mam taki problem ...

Mam w Javie zrobione okienko, grafe itd. itp. no i musze wywloac z Javy funkcje z C++ ... to umiem, ale problem tkwi w tym ze nie wiem w jaki sposob dokladnie polaczyc ...

Musze w C++ wygenerowac losowo 100 liczb i przeslac do Javy a w Javie odp. do kazdej liczby cos zrobic ... nie mam dokladnie koncepcji czy:

Przeslac tablice
Czy opjedynczo generowac liczby i pojedeynczo przesylac ...

Pozniej na tych liczbach bede musial znow robic operacje w C++, wiec znow z javy bede musial przeslac je, a moze da sie tak zrobic, ze jak je w C++ wygeneruje i przesle do javy to one nadal beda istniec wC++ ?? i za kazdym razem tylko java bedzie slac zgloszenie co C++ ma robic z liczbami i zmiane znow przeslac do javy ??

Moze dokladnie nie wytlumaczylem o co chodzi, ale jesli ktos mnie zrozumie to moze znajdzie rozwiazanie.

Ja proponuje takie pierwsze wygenerowanie:

Java wywoluje funkcje C++ ktora wybiera losowo liczbe i przesyla javie, Java odp. w zaleznosci cos robi i prosi o nastepna liczbe i tak do 100 ! ALe pozniej jesli cos bede musial z tymi liczbamni z javy zrobic to musze je slac do C++ np. w formie tablicy ... ( a moze da sie zapamietac je jakos w c++ ?? ) -> to bedzie biblitoeka dll

... a moze wystarczy zrobic tak:

Jesli mam juz ta funkcje ktora bedzie wywolywana z Javy ( wraz z plikiem funkcja.h )

[code]JNIEXPORT jint JNICALL Java_NowaGra_Losuj
(JNIEnv *pEnv, jobject obj){

//Tu bedzie losowal 100 liczb, na razie zwraca tylko inta, ale to jest przyklad

}[/code]

i jak dodam tablice jako zmienna globalna:

int** tablica;

to ajk np. funkcja ta zmieni cos w tej tablicy wysle do Javy, a za 5 minut jak java popri o zmiane to zmienne w tablicy beda dalej ?? czy cpp jesli skonczy przesylanie do javy to nie zrobi nic z allokacja tej tablicy w pamieci ...

0

Jeśli dodasz jako zmienną globalną, to nie powinno się nic takiego stać, chyba że biblioteka dll zostanie odładowana. Ale na 99.99% mogę Ci powiedzieć, że dllka pozostanie w pamięci co najmniej tak długo jak długo będzie działać aplikacja Javy. Ale po co pytać. Nie łatwiej sprawdzić?

Możesz też zamiast zmiennej globalnej, wewn. tej funkcji zadeklarować tablicę jako static:

static int tablica[100];

Wartości wpisane do takiej tablicy nie zostaną utracone po zakończeniu działania funkcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1