- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我希望将用户提交的数据传递给我已编译为 wasm 的 C++ 函数。数据是用户通过输入标签在前端提交的文件,如下所示:
<input type="file" onChange={this.handleFile.bind(this)} />
onChange 回调目前看起来像这样:
handleFile(e){
const file = e.currentTarget.files[0];
const reader = new FileReader();
reader.onloadend = evt => {
window.Module.readFile(evt.target.result);
}
reader.readAsArrayBuffer(file);
}
最后,包含 readFile 函数的 .cpp 文件如下所示:
void readFile(const std::string & rawString){
std::vector<uint8_t> data(rawString.begin(), rawString.end());
//...
}
EMSCRIPTEN_BINDINGS(my_module) {
emscripten::function("readFile", &readFile);
}
我整个下午都在阅读各种文档,所以我知道我应该在堆上为这些文件分配内存,然后将 ptr 从 js 传递到 readFile,而不是传递所有数据。我的问题是我真的不明白所有这些应该如何运作。有人可以解释一下吗?
最佳答案
借助 Emscripten,您可以为 WASM 使用虚拟文件系统。首先,使用 -s FORCE_FILESYSTEM=1
选项编译 C/C++ 代码。在 C/C++ 中,您只需像往常一样使用标准库函数处理文件。在 HTML 页面上,您有一个 input type=file
元素。
从输入元素获取文件并将其传递到 WASM 的示例 JS 代码:
function useFileInput(fileInput) {
if (fileInput.files.length == 0)
return;
var file = fileInput.files[0];
var fr = new FileReader();
fr.onload = function () {
var data = new Uint8Array(fr.result);
Module['FS_createDataFile']('/', 'filename', data, true, true, true);
Module.ccall('YourCppFunctionToUtilizeTheFile', null, [], null);
fileInput.value = '';
};
fr.readAsArrayBuffer(file);
}
链接:
关于javascript - 从前端将客户端文件传递给 webassembly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47313403/
我想通过将帧划分为 8x8 子 block 并将当前帧的每个 block 与前 10 帧的相邻 block 进行比较,从前 10 帧中找到运动矢量。 我可以用单帧进行操作,但我觉得很难处理 N 帧。
我正在尝试从数据库中选择一个随机条目,但仅从最新的 100 个条目中选择。有什么想法吗?谢谢。 最佳答案 对于 MySql - SELECT * FROM (SELECT * FROM tabl
我有一个表格,其中包含职位状态。表列是: ID //which is unique incremental Post_id //liked post user_id //user
使用 Laravel Eloquent,如何从前 100 行中随机抽取 10 行(按日期排序)。 例如,我有这个: $comments = Comment::orderBy('created_at',
数据是pandas系列:我正在使用df.B=df.A.str.extract(r'')使用提取的 WHERE 单词创建 B 列df: A HI my lines are so super WHERE1
我正在使用下面的脚本从前 24 小时中提取数据并将其输出到一个 html 表中,它在 8 月的整个月都有效,但自从月份更改为 9 月后就搞砸了,现在显示第一个数据入口.. 我的“时间戳”列是 varc
最近学习了Git的基本概念。我们确实使用了一些 git-svn 来熟悉它的使用。我想和我的 friend 一起在 git 上开始我的第一个“真正的”项目。 因此我想问一下您一般使用 Git 的最佳实践
我正在编写一个脚本,我需要在标签上提取 id 中可用的值,我需要使用纯 Javascript 来完成此操作。我有类似的 jQuery 代码可用,但我无法成功完成 Javascript 代码。我的 jq
我有这个查询来选择记录号 49 和 50 SELECT id,date FROM table WHERE enabled=1 ORDER BY id DESC LIMIT 2 OFFSET 48 现在
我是一名优秀的程序员,十分优秀!