2012-04-10 5 views
1

Ich habe eine Header-Datei header.h, in der Variable als x definiert ist.Definieren eines C-Makros aus dem Android-Code

#define Variable X

auf der Grundlage der Variablen x I haben eine Struktur, y in AC-Datei - programm.c:

#include header.h 

Structure y 
{ 
int val[variable]; 
. 
. 
//other elements 

} 


void func() 
{ 
//here instance of y->val[variable] is used heavily 

} 

Dieser Code c (header.h und zu programmieren. c) ist ein JNI Code und ich mache eine gemeinsame lib .so daraus und lade sie in den Android Java Code. Jetzt habe ich in letzter Zeit einen Fehler in meinem Code kennengelernt und die Lösung besteht darin, den Variablenwert dynamisch auf x zu setzen. nun diesen Wert aus dem Android zu JNI neben vorbei ist es eine Möglichkeit, direkt einen Makro in Android #define kann Java für C MACRODEFINED_FROM_ANDROID Sprache sagen, so dass in Header-Datei wie folgt wird:

#ifdef MACRODEFINED_FROM_ANDROID 
#define variable x 
#elif 
#define variable y 
#endif 

Andere Lösung Ich werde zwei shared library eins mit Variable = x und andere mit Variable = y erstellen und es dynamisch in den Android-Code laden.

PLz vorschlagen.

Rgds, Saurabh

Antwort

Verwandte Themen