1

我正在开发一个与硬件接口的 Linux 应用程序。要求之一是在 Web-browser 中创建 GUI。该应用程序将基于 c++。我不熟悉网络相关的东西,所以我想知道是否可以做这样的事情(目前它是一个控制台应用程序,从 txt 文件/cmd 行获取输入)。gui 将很简单,使用按钮并在应用程序的浏览器上显示输出消息。我想知道涉及哪些技术/语言以及如何完成。我读了一些想法,但还没有找到任何具体的东西。如果你对这些有任何想法或更好的建议,请分享

  • 在后台运行应用程序并与浏览器通信?
  • 直接从浏览器调用库函数?

还有其他想法吗?

4

3 回答 3

2

我会先设置一个常规的 HTTP 服务器,比如 lighttp 或 Apache httpd。

您说您已经有一个命令行程序来执行实际工作 - 作为第一步,我将重用它,并配置 Web 服务器以使用 CGI 调用您的程序 - 参见例如http://httpd.apache.org/docs /2.2/howto/cgi.html用于 Apache

最后,我会选择一些 JavaScript 框架,如 jQuery 或具有 Ajax 功能的 YUI,以向服务器发出请求,以从网页中调用 CGI 脚本。您也可以在没有 ajax 或任何框架的情况下创建基于表单的 Web 应用程序,但这需要您在程序中填充各种逻辑以生成 HTML 页面。通过使用 Ajax,您可以让命令行应用程序保持原样,并使用 javascript 解析它给出的任何响应,然后使用它以对用户有意义的方式动态更改网页。

如果这一切正常,那么我会尝试弄清楚如何打包所有这些组件。也许您只是想创建一个包含所有程序的简单存档,或者您可能希望将网络服务器实际嵌入到您的程序中。或者,您可能希望以相反的方式执行此操作,并将您的程序重写为可以插入 Web 服务器的 ISAPI 模块。或者,如果这还不够集成,您可以编写自己的(部分)HTTP 服务器。这完全取决于你(我可能会花费时间和精力来寻找最精简、最简单的现有开源 http 服务器并改用它)

无论如何,前面的步骤不会丢失工作。最有可能的是,开发网页将成为工作的重要组成部分,所以我可能会首先使用古老的 CGI 技巧创建一个快速而肮脏的工作解决方案,然后开发出令我满意的网页。那时,您只需将所有程序放在一个存档中即可获得可接受的可分发解决方案(当然,您也必须调整网络服务器的配置,例如更改默认端口,这样它就不会干扰现有的网络服务器。)只有之后,我会花时间创建一个更集成的精美解决方案。

于 2010-03-01T10:20:24.503 回答
1

尽管我会更新以供将来参考,但我最终还是使用了 Wt。

于 2011-01-07T06:08:23.277 回答
0

这些是我的想法,按照的复杂性排序:

  1. 创建一个简单的服务器端语言 (PHP/Python) 网站,可以与您的应用程序进行通信(即启动和处理返回)

  2. 修改您的应用程序以拥有一个内置的网络服务器,该服务器刚刚打出 HTML(通过 URL 获取的命令行参数)

  3. 修改应用程序以发布 JSON 并在简单的 HTML 页面上使用 javascript 将其拉入。

您可以编写一个 Java 小程序(因为您已标记此线程),但认为您会浪费时间。如果您愿意花 10 分钟时间查找一些简单的命令,这可能非常简单。

于 2010-03-01T09:50:25.480 回答