C++ 的 Web GUI控制台应用程序?

发布于 2024-12-12 04:18:59 字数 177 浏览 0 评论 0原文

我有一个 C++ 项目,需要某种 GUI,但我没有时间学习 Win32 API(或 qt 或 gtk)之类的东西。

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

谢谢。

I have a C++ project which I need to have some sort of GUI for, and I don't have time to learn something like the Win32 API (or qt or gtk for that matter).

So my question is:
What options do I have for building a web-based GUI for my C++ console application? For example, is it possible to use HTML for the GUI and somehow embed my C++ code into the webpage?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

洋洋洒洒 2024-12-19 04:18:59

您是否考虑过使用 Wt 网络工具包?它是一个 C++ 库,为 C++ 程序提供 Web 用户界面。

您还可以使用一些 HTTP 服务器库,例如 libonion

Did you consider using the Wt web toolkit? It is a C++ library to give a Web user interface to a C++ program.

You could also use some HTTP server library like libonion.

傲性难收 2024-12-19 04:18:59

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

Check CppCMS framework. It makes it easy to implement Web services in C++, handle requests and output responses, also with HTML templates. Simply, server-side embedded C++ scripting capability.

九局 2024-12-19 04:18:59

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

Web based gui's run on the client side and code is limited to Javascript. To run C++ on your site you would need to set up a server that can make calls to the C++ code via the console and accept the output from console. Then you would have to communicate that information to the client using page posts or ajax calls.

尾戒 2024-12-19 04:18:59

我怀疑这就是你想要的,但是有

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

    它有一个 HTTPServer/HTTPRequestHandler 模型,支持 C++ 中的一种服务器类型脚本(如 但使用 C++);请参阅此处查看示例:

    <块引用>

    <%@ page class="TimeHandler" %>
    <%!
        #include“Poco/DateTime.h”
        #include“Poco/DateTimeFormatter.h”
        #include“Poco/DateTimeFormat.h”
    
    
        使用 Poco::DateTime;
        使用 Poco::DateTimeFormatter;
        使用 Poco::DateTimeFormat;
    %>
    
    <%
        现在的日期时间;
        std::string dt(DateTimeFormatter::format(now, DateTimeFormat::SORTABLE_FORMAT));
    %>
    
    <头>
    时间样本
    
    <正文>
    

    时间样本

    <%=dt%>

    • http://pocoproject.org/documentation/PoCoOverview.pdf(部分2.9):

      <块引用>

      C++ 服务器页面编译器

      页面编译器是一个命令行工具,可以翻译 HTML 文件(以及其他文件)
      类型的文件)转换为 C++ 类,以便与由
      网库.源文件可以包含特殊指令,允许
      C++ 代码的嵌入。这些指令的语法基于
      用于 Java Server Pages (JSP) 和 Active Server Pages (ASP) 的语法。这
      使用 POCO C++ 可以非常轻松地用 C++ 构建 Web 应用程序
      图书馆。

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

  • Emscripten 能够通过 LLVM 中间代码将大量 C++ 代码编译为 javascript。这可用于使用完全在网络浏览器中运行的现有库函数

I doubt that this is what you want, but there is

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

    It has a HTTPServer/HTTPRequestHandler model that supports a kind of server kind scripting in C++ (like <?php ... ?> but with C++); see here for sample:

    <%@ 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 (section 2.9):

      The C++ Server Page Compiler

      Page Compiler is a command line tool that translates HTML files (and other
      kinds of files) into C++ classes for use with the HTTP server provided by the
      Net library. The source files can contain special directives that allow
      embedding of C++ code. The syntax of these directives is based on the
      syntax used for Java Server Pages (JSP) and Active Server Pages (ASP). This
      makes it very easy to build web applications in C++ with the POCO C++
      Libraries.

  • Klone Embedded Webserver doing similar things

  • Emscripten is able to compile extensive C++ code via LLVM intermediate code to javascript. This could be used to use existing library functions running entirely in the webbrowser

旧话新听 2024-12-19 04:18:59

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

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

如果您需要在应用程序运行时与网络进行交互,请参阅 expect

Does the console app need some sort of interaction or does it just take a bunch of commandline parameters, run and dump some output?

If you just want to create a web form to enter the values, run the app in a shell and format the results into a webpage - that's easy, suggest something like Python to write the wrapper to launch the program but anything will do.

If you need to interact with the app from the web while it's running see expect

御弟哥哥 2024-12-19 04:18:59

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

PHP's got shell_exec which will execute a command as if from the command line. Python and Ruby frameworks probably support popen on some level, though I have no specific information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文