2012-01-22 24 views
3

我有目前有控制台输出C++应用。给人一种C++项目web前端

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

我已经研究过重量,简单地说,但好像它把太多的前端在后端。
我希望能够使用更流行的Web前端,如JQuery和MooTools。
目前我使用Windows桌面进行原型制作,但我希望该解决方案能够最终在Linux上运行,并将Apache作为Web服务器。

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

回答

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%肯定它以这样一种方式,它不能被污染,例如解析:

; rm -rf * 

...从窗体返回的参数中。

0

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

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

之后,只是打印的网页的常规HTML,和你有直接的接口。您也可以使用它来使用ajax提供页面的一部分。