代码之家  ›  专栏  ›  技术社区  ›  Mathias Schnell

我想通过一个网站炫耀我的C++项目

  •  1
  • Mathias Schnell  · 技术社区  · 17 年前

    问题是,它是C++。我创建它们的方式使得它们总是通过终端/控制台窗口运行,等待用户输入,或者简单地获取一个示例输入并使用它运行。输出也总是发送到终端屏幕,有时发送到文件。如果可能的话,我不太确定如何在保留源代码不变的情况下将所有这些内容与网站集成。我想我的目标是让我使用的任何网站都像终端窗口一样,接受用户输入,然后发送它来运行C++程序,然后用输出(不管它是什么)返回,所有的代码都只需要对源代码进行最小的修改。或者设置一个自动化程度更高的页面,用户只需单击“Go”,程序将使用示例输入运行。

    当谈到Web时,我认为自己是HTML、CSS、PHP和AMP的中间层;MySQL,并且是Javascript的初学者,所以如果可以使用这些语言实现这一点,那就太棒了。如果没有,不要害怕给我看一些新的东西。

    6 回复  |  直到 17 年前
        1
  •  3
  •   gavinb    17 年前

    将最简单的交互模型带到web上的是一个应用程序,该应用程序将其输入放在前面,并在上面生成其输出 stdout CGI FastCGI 如果您的应用程序是交互式的,即它收集一些信息、显示一些结果、打印一些选项、收集更多的用户输入,然后生成更多的结果,则需要对其进行调整。

    下面是C++中最简单的CGI程序:

    #include <iostream>
    int main(int argc, char* argv[])
    {
        std::cout << "Content-type: text/plain\n" << std::endl;
        std::cout << "Hello, CGI World!" << std::endl;
    }
    

    它所做的只是返回内容类型,后跟一个空行,然后返回实际内容和通常无聊的问候语。

    POST

    foo.cgi?QTY=123&N=41&DESC=Simple+Junk
    

    然后需要解析查询字符串(通过 QUERY_STRING 环境变量)来收集表单中要传递给应用程序的输入字段。注意,解析参数字符串是大量安全漏洞的来源。对于C++来说,找到一个CGI库绝对是值得的(谷歌搜索揭示了很多),这是为你做的解析。查询数据可通过以下方式获得:

    const char* data = getenv("QUERY_STRING");
    

    name=value 对。如果你不想,你甚至不需要生成HTML;只需将内容类型返回为 text/plain 首先。然后,您可以稍后使用HTML对其进行改进(并相应地更改内容类型)。

    还有其他更复杂的解决方案,包括完整的web框架,如 Wt

        2
  •  2
  •   StackedCrooked    17 年前

    几乎离题了,但你可能想看看 Wt .

        3
  •  1
  •   jsshah    17 年前

    你有没有考虑过使用cgi。。。它的19世纪技术允许Web服务器执行用C/C++编写的程序来运行和生成输出

    我对它了解不多。。。但我在一些学校项目中使用了它

        4
  •  0
  •   lod3n    17 年前

    http://en.wikipedia.org/wiki/Screencast

    Camtasia甚至会生成您需要上传到web服务器的所有HTML和Flash。买一个漂亮的USB麦克风,写下你要说的和要展示的内容。

        5
  •  0
  •   Brock Woolf    17 年前

    炫耀你的项目的目的是什么?你希望给你的朋友或雇主留下深刻印象吗?

    通过Web界面模拟或移植C++控制台应用程序似乎不可行。

    Ruby在他们的网站上有一个编译器 demonstrates

    但是,没有人会在Web浏览器中运行你的C++应用程序。我认为,任何人都有兴趣运行C++应用程序,完全可以下载下载并运行的C++二进制文件(除了安全风险),但是当你考虑它时,我们会下载应用程序,并一直运行它们,同时信任源代码。

    我有一个投资组合网站,我创建的目的是 letting employers see my work . 看一看,它会给你一个想法,你可以做的事情的另一种方式。

    祝你好运

        6
  •  0
  •   davidg    17 年前

    http://www.swig.org/ 它允许您包装C++,以便在使用PHP等语言时可以访问C++代码。