Code: Select all
const inputStrPointer = createTeaVMString(input);
const outputStrPointer = teaVM.instance.exports.process(inputStrPointer);
const result = extractString(outputStrPointer);
Code: Select all
function createTeaVMString(input) {
const strPointer = teaVM.allocateString(input.length);
const strDataPtr = teaVM.stringData(strPointer);
const charArrayPtr = teaVM.objectArrayData(strDataPtr);
const memory = new Uint16Array(teaVM.memory.buffer, charArrayPtr, input.length);
for (let i = 0; i < input.length; i++) {
memory[i] = input.charCodeAt(i);
}
return strPointer;
}
function extractString(strPointer) {
//pointer
const stringDataPtr = teaVM.stringData(strPointer);
const length = teaVM.arrayLength(stringDataPtr);
const charArrayPtr = teaVM.charArrayData(stringDataPtr);
const memory = new Uint16Array(teaVM.memory.buffer, charArrayPtr, length);
let result = "";
for (let i = 0; i < length; i++) {
result += String.fromCharCode(memory);
}
return result;
}
< /code>
Aber im Java-Code < /p>
@Export(name = "process")
public static String process(String input) {
return new StringBuilder(input).reverse().toString();
}
@Export(name = "type")
public static String type(String input) {
return input.getClass().getSimpleName();
}
< /code>
Die erste Prozessfunktion funktioniert, aber der zweite ist nicht (Typ).
Und ich habe viele dieser Funktionen ausprobiert. Ich habe versucht, Referenzen auszusehen, aber es gibt keine Referenzen. Wenn Sie dann AI verwenden>