/ / Як makeSetValue, makeGetValue і можливоExport працюють в emscripten? - javascript, emscripten

Як makeSetValue, makeGetValue та maybeExport працюють в emscripten? - javascript, emscripten

я бачу makeSetValue, makeGetValue і maybeExport у багатьох сценаріях, наприклад в preamble.js

Але я не знаю, як ними користуватися або як вони насправді працюють, тому що ці функції не згадуються в документації.

Приклад коду:

function writeArrayToMemory(array, buffer) {
for (var i = 0; i < array.length; i++) {
{{{ makeSetValue("buffer++", 0, "array[i]", "i8") }}};
}
}

{{{ maybeExport("writeArrayToMemory") }}}

Відповіді:

2 для відповіді № 1

{{{ ... }}} є макросом, він витягується під час компіляції. Використовуйте --js-library варіант, як emcc --js-library lib_foo.js main.c ....

https://github.com/kripken/emscripten/blob/master/src/parseTools.js

lib_foo.js:

mergeInto(LibraryManager.library, {
writeArrayToMemory: function(array, buffer) {
for (var i = 0; i < array.length; i++) {
{{{ makeSetValue("buffer++", 0, "array[i]", "i8") }}};
}
}
});