2017-06-16 2 views
-2

Ich war mit JNI auf Android arbeiten, und ich versuchte, so etwas wie zu tun:Typedef Neudefinition Fehler

foo.h:

class jobject; //error here! 

class Foo { 
void dowork(const jobject&); 
} 

foo.cpp:

#include <jni.h> 
: 
: 
Foo::dowork(const jobject& obj) 
{ 
    //Do something 
} 

Ich sehe, dass this hat etwas ähnliches, aber ich gebühr, dass meins ist ein anderer Fall. Ich habe keine typedef auf anonyme Strukturen, sondern auf benannte Strukturen. Wenn wir sehen, die Datei jni.h

typedef _jobject*  jobject; 

und here:

class _jobject {}; 
+0

Also, wo _exactly_ erhalten Sie diesen Fehler? Ich sehe hier keinen 'typedef'. –

+3

'do' ist ein Schlüsselwort. Wird dies vom Compiler tatsächlich akzeptiert? –

+0

Was ist dein Fehler? –

Antwort

0

Du dies im Grunde tun:

typedef int* Foo; // typedefing Foo to int* 

class Foo   // attempt to declare a class with a name already used for typedef 
{ 
}; 
+0

Also gibt es keine Möglichkeit, etwas zu tun, was ich versuche, natürlich, dass ich die JNI-Header nicht ändern kann? – Zoso

Verwandte Themen