2011-08-27 140 views
5

是否有任何工具可以在标准Web浏览器上运行用QT编写的C++应用程序?它的C++应用程序必须从网页运行,做一些数学计算并将结果返回到网页。如何在网页上运行C++应用程序?

+1

是否要在JavaScript中嵌入C++代码(使用C++到JavaScript的编译器,如[Emscripten](http://stackoverflow.com/a/14900915/975097)),还是要使用浏览器插件呢? –

回答

-3

也许你可以将代码嵌入到ActiveX控件中。

+0

ActiveX不是一个跨平台的工具。这对我来说很敏感。 – lexl

+2

看完所有其他评论后,似乎你想要一个corss平台和跨浏览器解决方案。所以唯一的选择是将C++代码翻译成Javascript。如果你的代码只是做一些数学运算,应该可以把它翻译成Javascript。 –

+0

问题是我的应用程序对执行时间很敏感。它是一个实时视频处理器,具有很多数学算法,并广泛使用第三方C++库。将我的应用程序转移到Javascript框架来完成这个数学是不可能的。但是,再次感谢你。 – lexl

2

你不能。当然,您可以使用C++将服务器端编写到Web应用程序中,但Qt GUI框架仅适用于在其所运行的计算机上显示其用户界面的应用程序。 (在远程X11连接等情况下通常需要注意,但这对您的Web应用程序无助)。

+0

是否有可能通过JavaFX或类似的东西在C++应用程序和Web浏览器中进行可视化部分展示? – lexl

+0

您当然可以在服务器端使用C++进行计算,并通过Web界面显示结果。你甚至可以使用Qt的非GUI部分来构建你想要的C++应用程序,但是你不能使用Qt GUI来进行用户交互。我不清楚JavaFX会向您购买什么;一个普通的基于JavaScript的客户端用户界面(在服务器上生成图形等,并将它们作为PNG传输)将非常简单。 –

+0

在我的情况下,重要的是在客户端放置用C++编写的计算代码,并且它的应用程序必须像智能客户端i那样工作。 Ë: 提供的应用程序通过Web HTTP连接 不需要安装(或提供自动安装) 无需用户操作 自动更新了桌面应用程序的外观和感觉 现在有几个平台,建立这样的应用程序:需要Adobe Flash ,JavaFX和Silverlight。JavaFX仅适用于我的目的,但我不知道是否可以将它与C++计算代码捆绑在一起。 – lexl

8

退房NaCl (Native Client)。没有Qt,但你可以使用C++。

+4

实际上有: http://labs.qt.nokia.com/2010/06/25/qt-for-google-native-client-preview/ 但我不知道它有多成熟。 –

+0

有趣的链接(+1)。它真的可用吗? – Jiri

+0

虽然chrome确实具有此功能,并且高级程序员可以从中受益...我不知道这个答案有助于OP。 –

1

我已阅读有关这样的示例应用程序。我想你可以搜索这个术语“Qt WebKit混合应用程序”。在那个例子中,用户界面是用HTML和Javascript编写的,后端用C++编写。甚至,C++对象的所有权可以转移到Javascript。我不确定我是否正确,但我是部分正确的。编辑: 这是链接。 https://developer.qt.nokia.com/wiki/Server-Driven_UI_with_Hybrid_QtWebkit

+0

谢谢你的回答。 Qt WebKit的使用是相反的解决方案,因为它允许Web内容与C++集成并通过Qt框架执行。但我想在网页上执行C++代码。 Qt WebKit并不是我所期望的,但我把这个工具视为妥协。 – lexl

1

可以使用Emscripten将C++代码编译为JavaScript,然后从JavaScript调用编译后的C++函数as explained here。这将允许您在Web浏览器或其他JavaScript环境中运行C++代码,而无需任何额外的插件。