Hej,
Jeg bruger JNI for at flytte Strings fra java til c++. Når disse strenge
når frem, fremstår de danske bogstaver som garbage. Jeg behøver de danske
bogstaver også - men hvordan gør jeg?
Her er min java-kode:
public class DBObject3
{
static
{
System.loadLibrary("strlen1");
}
public static native void getVariableHandles( String[] varNames );
}
... og min kaldende java-kode:
public class DBObjectDelete
{
DBObject3 dbob = new DBObject3();
public DBObjectDelete()
{
String[] varNames = { "kørsel", "læsning" };
dbob.getVariableHandles( varNames );
}
public static void main( String args[] )
{
new DBObjectDelete();
}
}
... og min c++ kode:
using namespace std;
JNIEXPORT void JNICALL Java_DBObject3_getVariableHandles(JNIEnv *env,
jclass clazz, jobjectArray jo)
{
jsize arrsize = env->GetArrayLength( jo );
jstring elem;
char *cstr;
for (int i = 0; i < arrsize; i++)
{
elem = (jstring) env->GetObjectArrayElement (jo, i);
cstr = (char *) env->GetStringUTFChars( elem, NULL);
cerr << cstr << " - ";
}
env->ReleaseStringUTFChars (elem, cstr);
}
Hvad pokker gør jeg galt? På forhånd tak for hjælp,
mvh.
Morten.
|