я бачу 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") }}};
}
}
});