私は奇妙な問題で困惑しています:私はJNI関数アンドロイドスタジオに足を踏み入れるとき3.0.1デバッガが変数に完全に間違った値を示している(「この」ポインタを含む)のポインタ見ポインタが
#include <jni.h>
class T
{
public:
void a4(T* p, long pp)
{
T *_p = (T *) pp;
bool b = p == _p;
bool b1 = this == p;
bool b2 = this == _p;
}
};
extern "C" JNIEXPORT jstring JNICALL
Java_com_simplesvc_myapplication_MainActivity_stringFromJNI(JNIEnv *env, jobject /* this */)
{
T *p = new T();
long pp = (long) p;
p->a4(p, pp);
return env->NewStringUTF("hello");
}
用表示します後
:
"this"のスクリーンショット値は間違っていて、a4()に入った後にpパラメータの値が変わります。興味深いことに、長い値を渡す(ppパラメータ)がうまくいきます。それは変数でpointertsは、ポインタパラメータの正しい値を見るためにどのようにいくつかの理由
のための任意のアイデアを表示変換アンドロイドスタジオのように見えますか?
用にコンパイルする必要があり、実際にあなたがこれを行うしています'x86_64' } } } – Moyote