我们有可移植的C++源代码,用于在各种不同的硬件(10+平台)上部署游戏和应用程序。我们现在对部署到web浏览器很感兴趣。
Chrome有自己的Native Client架构。然而,作为一个平台,我们将仅限于Chrome用户。有没有其他新兴的标准允许编译C/C++源代码并针对web浏览器?
发布于 2012-05-18 01:30:26
在这个话题上,短期内不会有100%的答案。
原因是,没有一个主要的web浏览器真正支持运行完全安全的本地编译代码,就像C++一样。ActiveX从来都不是完全安全的,也不是100%知道chrome的适用性,但是chrome在用户空间做了很多事情。像编译后的机器码这样的东西只能从操作系统内核制作的合适的沙盒中才能真正得到信任。
即将发布的Windows8具有新的沙箱技术,与新的Windows RT编译器一起,将允许在浏览器中使用C++,并且这些新代码得到了适当的保护。
使用Linux的人也在那里处理不同类型的沙箱,内核也支持这些沙箱。在遥远的将来,你可能会看到它们是linux浏览器的沙箱,也是VMS托管解决方案的沙箱,等等……
所以现在,C++代码的解决方案是...
1)谷歌chrome应用2) windows 8 IE 10与新的Windows 8 Metro应用程序等
您必须为所有系统构建您的应用程序,并使用服务器cookie来识别要发送到浏览器的版本。就像以前有ActiveX和Mozilla Netscape插件一样。换句话说,新的和即将到来的插件场景将比ActiveX和Netscape插件更安全(因为它将被适当地沙箱),但它可能会更昂贵和更具技术性,因为...
1)将会有更多的浏览器自定义机器代码插件的供应商。2)每个操作系统中的沙箱将略有不同,甚至非常不同。3)每个操作系统的构建项目会有所不同。4)你很可能不得不把应用程序放在应用程序商店里。5)你的应用必须经过应用商店的验证。6)如果你想无处不在的支持,你可能需要支付不同的应用商店。
如果供应商让沙箱技术正常工作,那么很多人会出于显而易见的原因使用它,但如果客户端沙箱出现某种类型的标准化,可能还需要很多年,这对每个人来说都是一件令人悲哀的事情。但我认为,如果浏览器制造商实现了操作系统支持的适当的沙箱,它将是完全安全的,因此许多网络公司将不再能够控制你所做的一切。
否则,我可能过于猜测了,但这就是我目前对C++和浏览器的看法。我的建议是,等一段时间,然后做其他的事情。如果沙盒来了,那就来吧。
发布于 2012-05-18 01:45:19
Emscripten可以将LLVM (例如,Clang从C++生成的)编译成JavaScript。
https://stackoverflow.com/questions/10640106
复制相似问题