为C ++项目提供Web前端

时间:2012-01-22 05:32:04

标签: web-services web-applications

我有一个 C ++ 应用程序,目前有控制台输出。

我想在此应用程序中添加一个简单的Web前端,以允许我远程查看其输出。
最后,我想添加一些按钮来控制后端应用程序,以及一些图表可视化数据的能力。

我简单地研究了Wt,但似乎它在前端放了太多的前端。
我希望能够使用更受欢迎的网络前端,比如JQuery和MooTools。
目前我正在使用我的Windows桌面进行原型设计,但我希望该解决方案能够最终在Linux上运行,并将Apache作为Web服务器。

在前端和后端之间创建绑定的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

我有时会使用一种快速而简单的方法来编写运行应用程序并捕获其输出的perl cgi包装器:

#!/usr/bin/perl
use warnings;
use strict;
use CGI qw(:standard);

print header();
print "<html><head><title>Example that should get you going</title></head><body>\n\n";

my @output = `/usr/bin/whatever`;

# you'd probably want to parse the output in some way at this point

print @output;

print '</body></html>';

当您开始控制它时,您可以向网站添加表单。基本上,如果param()中包含数据,请使用该数据来解析C ++应用程序的一组开关。如果没有定义开关,则显示一个带有一组复选框和按钮的表单,这些复选框和按钮在提交时将解析为开关,应用程序将随之启动。

警告:如果您正在将表单输入解析为交换机,那么绝对100%确定它是以不会被污染的方式解析的,例如,a:< / p>

; rm -rf *

...在表单返回的参数中。

答案 1 :(得分:0)

这可能不是您正在寻找的,但根据服务器设置,您通常可以重命名C ++应用程序以在Apache服务器上具有扩展名“.cgi”,它将像任何其他cgi脚本一样运行。但是,为了使事情正确显示,您需要在程序开头添加以下行:

printf("Content-type: text/html\n\n");
printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

之后,只需打印网页的常规html,即可拥有直接界面。您也可以使用它来使用ajax提供页面的一部分。

答案 2 :(得分:0)

我知道您已经提到过Web Toolkit,但这可能是您现成的最佳选择之一。

我建议您具体研究MVC设计模式。

这将允许Web前端(无论您要多么复杂)以及深厚的后端功能。

您还提到了类似这样的事情在后端上太重了,但是请记住,如果出于任何原因需要这样做,沿着这条路线走也将为您提供足够的扩展空间。