Я попытался ответить на ваш вопрос, используя этот ответ:
https://stackoverflow.com/a/46748966/544721
для принятия решения:
#include<vector>
const int SIZE = 10;
std::vector<int> data(10);
void add(int value) {
for (int i=0; i<SIZE; i++) {
data[i] = data[i] + value;
}
}
int* getData() {
return &(data[0]);
}
и js:
var wasmModule = new WebAssembly.Module(wasmCode);
var wasmInstance = new WebAssembly.Instance(wasmModule, wasmImports);
var offset = wasmInstance.exports.getData();
var linearMemory = new Uint32Array(wasmInstance.exports.memory.buffer, offset, 10);
for (var i = 0; i < linearMemory.length; i++) {
linearMemory[i] = i;
}
wasmInstance.exports.add(10);
for (var i = 0; i < linearMemory.length; i++) {
log(linearMemory[i]);
}
WasmFiddle: https://wasdk.github.io/WasmFiddle//?wuycy
Но похоже, что есть какая-то ошибка компоновщика:
line 2: Uncaught LinkError: WebAssembly Instantiation: Import #9 module="env" function="__dso_handle" error: global import must be a number
Может ли кто-нибудь помочь заставить этот код C ++ работать в WasmFiddle?