2012-01-22 3 views
3

현재 콘솔 출력이있는 C++ 응용 프로그램이 있습니다.C++ 프로젝트에 웹 프런트 엔드 제공

출력을 원격으로 볼 수 있도록이 애플리케이션에 간단한 웹 프런트 엔드를 추가하고 싶습니다.
결국, 백엔드 애플리케이션을 제어하는 ​​버튼과 데이터를 시각화 할 수있는 차트 기능을 추가하고 싶습니다.

간단히 살펴 봤지만 백 엔드에 너무 많은 프런트 엔드를 배치 한 것처럼 보입니다.
저는 JQuery와 MooTools와 같이 대중적인 웹 프런트 엔드를 사용하고 싶습니다.
현재 프로토 타입을 만들 때 Windows 바탕 화면을 사용하고 있지만 웹 서버로 Apache를 사용하여 결국 Linux에서 실행될 수있는 솔루션을 원합니다.

프런트 엔드와 백엔드간에 바인딩을 만드는 가장 좋은 방법은 무엇입니까?

답변

1

한 빠른 - 및 - 더러운 방법은 응용 프로그램을 실행하고 출력의 캡처 펄 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++ 응용 프로그램에 대한 스위치 집합을 구문 분석합니다. 스위치가 정의되지 않은 경우 제출할 때 스위치로 구문 분석되고 응용 프로그램이 시작될 때 확인란이있는 양식을 표시하십시오.

경고 :

; rm -rf * 
:
당신이 스위치로 폼 입력을 구문 분석하는 경우가가, 예를 들어,로 오염 될 수있는 방식으로 구문 분석있어 절대적으로 100 % 확인

... 폼에서 반환 된 매개 변수에.

0

정확하지 않을 수도 있지만 서버 설정에 따라 일반적으로 Apache 서버에 확장명이 ".cgi"가되도록 C++ 응용 프로그램의 이름을 바꿀 수 있으며 다른 cgi처럼 실행됩니다 스크립트. 일이 제대로 표시되도록하기 위해, 그러나, 당신은 당신의 프로그램의 시작 부분에 다음 줄을 추가해야합니다 단지 웹 페이지의 일반 HTML을 인쇄, 그 후

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

, 당신은 직접이 인터페이스. 또한 이것을 사용하여 ajax를 사용하여 페이지의 일부분을 제공 할 수 있습니다. 내가 가끔 사용

관련 문제