タイプ DWORDLONG (WIN32 で符号なし 64 ビット int として定義) からタイプ jlong (符号付き 64 ビット long 値として JNI で定義) を返そうとしています。
キャストを入力するだけです:
DWORDLONG dwl = 1000000000000;
jlong n = (jlong) dwl;
操作が定義されていないため、値を変更します。
では、以前と同じ数値を維持しながら、unsigned long を signed long に変換するにはどうすればよいでしょうか。
アップデート
私のテストをすり抜けたポインター逆参照エラーが原因で、問題が発生していたようです。キャストは値を変更していませんでした。コメント/回答してくれたすべての人に感謝します.少なくとも今では、これが完全に合法的な操作であることを知っています.