将文件名作为参数传递给 Emscripten 生成的 js

Passing in a file name to Emscripten generated js as an argument

我通过 ecc 从 C 移植到 WebAssembly 的程序似乎在 运行 通过 emscripten 生成的 html 文件时“工作”(它显示帮助页面,因为它应该在没有参数时显示已通过)。但是,要使用该程序,需要传入一些参数。

示例: exampleprogram -option filename

本质上,我希望为用户提供一种从桌面 select 文件并将其作为参数传递给程序的方法,然后单击另一个按钮 运行 程序。这都是 运行 在本地进行的,因为要 selected 的文件存在一些版权问题。 我对 html css 和 js 还是很陌生,到目前为止我所做的最多的是创建页面的基本布局并附加生成的 js 文件

要 运行 一个带有命令行参数的 emscripten 构建的程序,您首先要设置 Module['arguments'],然后再加载模块的 js 文件。

然而,从用户的文件系统获取文件到浏览器以便 emscripten 可以处理它是更复杂的问题。有关如何执行该部分的信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications

获得文件后,您需要将其注入模块的虚拟文件系统。有关这方面的更多信息,请参阅:https://emscripten.org/docs/api_reference/Filesystem-API.html