私は非常に新しいC++です。私はunsigned shortをjcharArrayにキャストする方法を知らない。unsigned shortをjcharArrayにキャストする方法は?
マイコード:
extern "C"
jcharArray
Java_demo_jni_btten_com_testjnidemo_MainActivity_openStaticWaveFile() {
float hanfengl, distance;
int vertical;
FILE *fp = NULL;
fp = fopen("/storage/emulated/0/Download/3.stwav", "rb");
PAT.bscan_play_flag = 0;
U32 cur_param_len = sizeof(PB) + sizeof(Chan[PB.C_N]) + sizeof(PAT.tSd);
U32 filetype;
U32 param_len;
U16 DateStart[6];
U16 DateEnd[6];
fread(&filetype, sizeof(filetype), 1, fp);
fread(DateStart, sizeof(DateStart), 1, fp);
fread(DateEnd, sizeof(DateEnd), 1, fp);
fread(¶m_len, sizeof(param_len), 1, fp);
fread(&hanfengl, sizeof(hanfengl), 1, fp);
fread(&distance, sizeof(distance), 1, fp);
fread(&vertical, sizeof(vertical), 1, fp);
if (param_len == cur_param_len) {
if (PAT.tSto.Read_Start_Flag != 1) // 读开始标志
PAT.tSto.Read_Start_Flag = 1;
fread(&PB, sizeof(PB), 1, fp);
fread(&Chan[PB.C_N], sizeof(Chan[PB.C_N]), 1, fp);
fread(&PAT.tSd, sizeof(PAT.tSd), 1, fp);
}
fclose(fp);
return PAT.tSd.HD;
}
PAT.tSd.HD
U16 unsigned short[512]
見た目が好きされています
U16 HD[RESERVE_SAMPLE_DEPTH]; // RESERVE_SAMPLE_DEPTH is 512
を私はPAT.tSd.HD
を返す方法を知っている、あなたは私を助けることができないのですか?
'jcharArray'(または' char [] ')のようなUTF-16コード単位の配列の' HD'は?それは ''\ u0000''で終了するのですか、またはデータは常に512コード単位ですか? Javaの 'string'(UTF-16コード単位の数えられたシーケンス)を返さないのはなぜですか? –