当前位置: 首页 > Web前端 > HTML

使用WebAssembly调用本地C程序的自定义函数并返回页面

时间:2023-04-02 22:57:43 HTML

本demo的目的是通过浏览器使用WebAssembly技术调用C语言的自定义函数。该示例是添加两个变量并将计算出的值返回到HTML页面。项目结构├──index.html└──main.cC语言创建文件main.cintsum(intv1,intv2){returnv1+v2;}HTML创建文件index.html演示

varresult;fetch("./main.wasm").then(bytes=>bytes.arrayBuffer()).then(mod=>WebAssembly.compile(mod)).then(module=>{returnnewWebAssembly.Instance(module)}).then(instance=>{varv1=300;varv2=500;result=instance.exports.sum(300,500);document.getElementById("result").innerHTML="调用C函数sum("+v1+","+v2+")结果如下:
"+v1+"+"+v2+"="+result;});编译wasm并将main.c源文件编译成main.wasm文件emccmain.c-Os-sWASM=1-sSIDE_MODULE=1-omain.wasm执行成功├──index.html├──main.c└──main.wasm运行一个http服务,将本地文件夹发布到http服务emrun--no_browser--port8888,完成后浏览器打开http://localhost:8888/查看结果,调用Cfunctionsum(300,500)结果如下:300+500=800注意WebAssembly是2017年推出的新技术,最好使用支持WebAssembly的最新浏览器。