Ich habe einen ‚unsigned char *‘ und ich will es weitergeben an den Java-Code unter Verwendung von JNI ich es in der folgenden Art und Weise versucht haben,JNI: Wie „unsigned char *“ von C passieren ++ zu Java
jstring test1;
std::string str(reinterpret_cast<const char*>(ucptest));
test1 = env->NewStringUTF(str.c_str());
wobei 'ucptest' 'unsigned char *' ist und Ascii-Werte enthält. dieser Code funktioniert und ich kann erfolgreich jstring an Java-Code übergeben, aber in der Ladung Anruf sehe ich Absturz in JVM.
Was könnte der mögliche Grund für den Absturz sein? Absturz ist Inkonsistenz, was Speicherkorruption bedeuten könnte.
Kann jemand eine bessere Möglichkeit vorschlagen, 'unsigned char *' an Java zu übergeben?
jede Hilfe wird geschätzt.
Dank
Sie versuchen, eine Zeichenfolge übergeben, kein Zeiger , also sag es. Die Übergabe eines Zeigers an Java wäre so einfach wie das Umwandeln in eine Ganzzahl, aber das wäre nutzlos, weil Java-Code nichts mit dem Zeiger machen könnte. –
Nein, ich habe Legacy-Code mit 'unsigned char *', den ich an Java übergeben muss – Vikas
@ user578742 ist ucptest Null beendet? – josefx