У нас есть API, предоставленный поставщиком, структура которого определена как
typedef struct
{
char duo_word[8];
} duo_word;
Они отправляют нам данные в этой структуре, которые мы затем должны передать в наше Java-приложение через jni.
printf("Number: : %i\n", duo_word_inst);
печатает правильное значение типа int, например, 52932, но
printf("Number: : %s\n", duo_word_inst);
ничего не печатает.Более того, если я использую код jni ниже, мой процесс java получает тарабарщину.
jstring jstrBuf = (*env)->NewStringUTF(env, (char*)(duo_word_inst));
(*env)->SetObjectField(env, *ret_obj, fld_id, jstrBuf);
отправляет тарабарщину на java, например, ÄÎ
// I have got some example data captured from VS debugger below.
duo_word duo_word_inst = { .duo_word = { 'º', '\b', '\x1', '\0', 'À', '\xe', '2', 'a' } };
printf(" %i ", duo_word_inst); // gives 67770 which is correct.
Мои навыки C очень элементарны, поэтому я был бы очень признателен, еслиКто-то может указать на глупость, которую я здесь делаю.Спасибо,