2016-07-05 20 views
1

どのように2つのjstringsをc言語で比較しますか?私はJava言語でCのネイティブ関数を呼び出すことになっているJavaのネイティブインタフェースで作業していますが、Cコード内のロジックは一致する名前を比較することです。Jstringの比較in.c言語

答えて

1

あなたは、単にCallBooleanMethod()経由でJavaのequals()(またはものは何でもしたい)を使用することができます。

jstring jstr1; 
jstring jstr2; 

jclass cls = (*env)->GetObjectClass(env, jstr1); 
jmethodID mID = (*env)->GetMethodID(env, cls, "equals", "(Ljava/lang/Object;)Z"); 
jboolean equals = (*env)->CallBooleanMethod(env, jstr1, mID, jstr2); 

これは、このような比較のラフバージョンです。

+1

このコードを実行すると、次のエラー "式にポインタ型が必要です"が表示されます。 –

+0

私が言ったように - それは荒いです。コンパイラのメッセージ全体と、それが正確に理解できない行を表示しますか?それはCまたはC++としてコンパイルされていますか? – Sergio

+0

実際にはVisual Studio.weのコードをWindowsに作成していますが、ロジックが存在する.cファイルを追加したdllが作成されています。 –

関連する問題