2016-07-05 50 views
1

如何在c語言中比較兩個jstring。我正在使用java本地接口,其中我通過java語言調用c本地函數c代碼中的邏輯是比較匹配的名稱。Jstring比較in.c語言

回答

1

您可以簡單地使用Java的equals()(或任何你想)通過CallBooleanMethod()

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

其實我們已經在windows visual studio中編寫了代碼。我們已經創建了dll,其中添加了我們的邏輯存在的.c文件。 –