将C 代码(本机客户端)移植到浏览器(Web应用程序)
Porting c++ code (native client) to browser (Web app)
i使用QT-CREATOR SDK编写的C 模块。我想将此代码移植到任何网页上,而不会损害最终用户的源代码。用户应该能够在任何浏览器(Chrome,Firefox,Safari,Explorer)上看到此模块的输出,而无需安装任何其他浏览器插件。实现这一目标的更好选择是什么。我谷歌搜索了几乎没有这样的选择:
- Google本地客户端(NACL) - 但仅在Chrome上运行。这是Web应用程序的未来吗?
- ppapi-不确定它是否与NaCl相同
- npapi-几乎被解释
- emscripten-它将C 转换为JS。因此,用户可以看到源代码。
- WebAssembly
我还需要实现其他选择吗?如果没有,我应该从上述选项中挑选哪个!?提前谢谢了。
一些澄清:
- NaCl将不受Chrome以外的浏览器的支持。我们(Google的NACL/WebAssembly团队)更专注于未来的WebAssembly。
- PPAPI是NACL使用的API集合。
- npapi:在出路时,无论如何都需要安装插件。
- emscripten。它确实将C 编译到JS,但我不会说它向用户揭示了您的源代码。通过通常的汇编和优化过程,它已经显着转化,我想说它比源代码更接近机器代码。此外,我们正在向Emscripten添加WebAssembly支持,因此,使用相同的来源,您可以为那些支持它的浏览器生成WebAssembly,并为尚未提供的浏览器生成Asm.js。
- WebAssembly是未来,并将符合您所有的标准,并且需要注意,WASM可用的浏览器API和功能与JavaScript可用的功能相同。因此,例如,您将无法无限制地访问用户的文件系统。所有4个主要的浏览器供应商都在实现WebAssembly,但首先应出现在Chrome和Firefox中,因为这些浏览器的发布时间表与各自的操作系统都没有耦合。
我的建议是尝试使用Emscripten移植代码。您可以从今天开始并使用ASM.JS,当WebAssembly启动时,您可以以最少的额外精力来定位目标。将来会有其他工具链和语言来支持WASM,但是今天Emscripten确实是唯一的即时选择。
相关文章:
- 我的web应用程序的用户需要在浏览器上手动启用本机客户端吗
- 如何捕获从 MFC Web 浏览器 c++ 发出的 GET/POST 请求
- 在能够从 Web 浏览器访问大型数组数据的同时存储它的最可行方法是什么?
- 如何使用http:uri方案启动默认的Web浏览器并使用Shellexecute访问主页
- 如何隐藏显示HTML5标记的Web浏览器控件(IE)的滚动条和窗口边框
- 将C 代码(本机客户端)移植到浏览器(Web应用程序)
- 如果您不编写 Web 应用程序,并且您的客户端不是浏览器,那么 Web 套接字相对于常规套接字的优势是什么?
- 当在Web浏览器上输入某些内容时,可以创建条件
- Web浏览器挂钩和自动化
- C++实现文件缓存(如 Web 浏览器)的库
- 在 Web 浏览器上显示保存的文件
- 重用 Web 浏览器控件
- 在web浏览器上流式传输c++文件
- 是否可以使用C++库运行本地 PHP 以在应用内 Web 浏览器中使用
- Web浏览器与本机C++的通信
- Web浏览器控件仿真问题(FEATURE_browser_emulation)
- 如何使用C++和WinAPI检查是否有任何web浏览器正在运行
- 如何将功能齐全的 Web 浏览器嵌入到我的 C++ 应用程序中
- MFC Web 浏览器控件:模拟 Ctrl+N 需要多少(正常)代码行
- 尝试在 Windows 10 上获取默认 Web 浏览器路径失败