将数据传递给 WebAssembly

马修斯卡皮诺

我正在尝试将值从 JavaScript 传递到 WASM,但它不起作用。这是我的 C 代码:

extern int x;
int foo() {
  return x;
}

在 JavaScript 中,我实例化模块并将 x 设置为 5:

var importObj = {
  env: { 
    memory: new WebAssembly.Memory({initial: 256, maximum: 256}),     
    _x: 5
  }
};    

WebAssembly.instantiateStreaming(fetch('test.wasm'), importObj)
.then(result =>
    console.log('Output: ' + result.instance.exports._foo())
);

这不会产生任何错误,但记录的消息Output: 0不是Output: 5. 有任何想法吗?

毛罗·布林道夫

你用什么把你的 C 代码编译成 wasm?我试图让它在https://webassembly.studio上工作,发现该函数foo从内存位置加载值0所以我能够Output: 5通过从 JS 初始化实例内存来产生

WebAssembly.instantiateStreaming(fetch('test.wasm'), importObj)
  .then(result => {
    const mem = new Uint32Array(result.instance.exports.memory.buffer)
    mem[0] = 5
    console.log('Output: ' + result.instance.exports._foo())
  });

老实说,我希望extern int x成为wasm 中的导入全局变量,可以通过importObj. 我希望这仍然有助于走上正确的道路。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将数据传递给方法

来自分类Dev

将openpyxl数据传递给熊猫

来自分类Dev

将数据传递给Laravel事件

来自分类Dev

将额外的数据传递给函数

来自分类Dev

将变量数据传递给ValidationAttribute

来自分类Dev

将数据传递给createApp(vue)

来自分类Dev

Flutter:将数据传递给状态

来自分类Dev

Titanium将数据传递给createHTTPClient

来自分类Dev

将数据传递给AsynTask

来自分类Dev

将数据传递给服务-Android?

来自分类Dev

将数据传递给javascript图表

来自分类Dev

将数据传递给支持的节点

来自分类Dev

将数据传递给 taghelper

来自分类Dev

将数据传递给父组件

来自分类Dev

将数据传递给模态/WebView

来自分类Dev

将数据传递给列表

来自分类常见问题

将Python编译为WebAssembly

来自分类Dev

在Blazor WebAssembly应用程序中如何将(string [] args)传递给Program.Main?

来自分类Dev

如何使用bootsrap将数据传递给模态

来自分类Dev

将额外的数据传递给yii上传器

来自分类Dev

如何将数据传递给scrapinghub?

来自分类Dev

Angular:如何将范围数据传递给指令

来自分类常见问题

AngularJs将复杂数据传递给指令

来自分类Dev

无法通过ajax将json数据传递给php

来自分类Dev

JavaScript-将数据传递给匿名函数

来自分类Dev

将表单数据传递给父类

来自分类Dev

将原始数据传递给pdfJS而不是url?

来自分类Dev

通过Web表单将数据传递给对象

来自分类Dev

将异步获取的数据传递给指令