用于c++控制台应用程序的Web GUI

Web GUI for C++ console application?

本文关键字:Web GUI 应用程序 c++ 控制台 用于      更新时间:2023-10-16

我有一个c++项目,我需要有某种GUI,我没有时间去学习像Win32 API这样的东西(或qt或gtk)。

我的问题是:为我的c++控制台应用程序构建基于web的GUI有哪些选择?例如,是否有可能使用HTML作为GUI,并以某种方式将我的c++代码嵌入到网页中?

谢谢。

您考虑过使用Wt web工具包吗?它是一个c++库,用于为c++程序提供Web用户界面。

您也可以使用一些HTTP服务器库,如libonion。

检查CppCMS框架。它使得用c++实现Web服务、处理请求和输出响应(也可以使用HTML模板)变得容易。简单地说,服务器端嵌入c++脚本功能。

基于Web的gui在客户端运行,代码仅限于Javascript。要在您的站点上运行c++,您需要设置一个服务器,它可以通过控制台调用c++代码并接受控制台的输出。然后,您必须使用页面发布或ajax调用将该信息传达给客户端。

我怀疑这是不是你想要的,但是

  • 略http://pocoproject.org/docs/Poco.Net.HTTPServer.html

    它有一个HTTPServer/HTTPRequestHandler模型,支持一种服务器类脚本在c++(像<?php ... ?>,但与c++);参见这里的示例:

    <%@ page class="TimeHandler" %>
    <%!
        #include "Poco/DateTime.h"
        #include "Poco/DateTimeFormatter.h"
        #include "Poco/DateTimeFormat.h"
    
        using Poco::DateTime;
        using Poco::DateTimeFormatter;
        using Poco::DateTimeFormat;
    %>
    <%
        DateTime now;
        std::string dt(DateTimeFormatter::format(now,  DateTimeFormat::SORTABLE_FORMAT));
    %>
    <html>
    <head>
    <title>Time Sample</title>
    </head>
    <body>
    <h1>Time Sample</h1>
    <p><%= dt %></p>
    </body>
    </html>
    

    • http://pocoproject.org/documentation/PoCoOverview.pdf(章节2.9):

      c++ Server Page Compiler

      Page Compiler是一个命令行工具,可以翻译HTML文件(和其他文件)类提供的HTTP服务器使用的c++类网络图书馆。源文件可以包含允许的特殊指令c++代码的嵌入。这些指令的语法基于用于Java服务器页面(JSP)和活动服务器页面(ASP)的语法。这使得使用POCO c++在c++中构建web应用程序变得非常容易库。

  • Klone嵌入式web服务器做类似的事情

  • Emscripten能够通过LLVM中间代码编译大量c++代码到javascript。这可以用来使用完全在web浏览器中运行的现有库函数

控制台应用程序是否需要某种交互,或者它只是接受一堆命令行参数,运行并转储一些输出?

如果你只是想创建一个web表单来输入值,在shell中运行应用程序并将结果格式化为网页-这很容易,建议使用Python之类的东西编写包装器来启动程序,但任何东西都可以。

如果你需要在应用运行时从web与它交互,请参见expect

PHP的shell_exec将执行命令,就像从命令行。Python和Ruby框架可能在某种程度上支持popen,尽管我没有具体的信息。