代码之家  ›  专栏  ›  技术社区  ›  Piotr Dobrogost

C++项目的嵌入式浏览器?

  •  11
  • Piotr Dobrogost  · 技术社区  · 15 年前

    在Windows上有没有我可以在C++应用程序中嵌入的浏览器?

    我需要典型浏览器具有的所有功能(HTTP客户端、cookies支持、dom风格的HTML解析器、javascript引擎) 除了 致使。 因为我不需要渲染功能(这是浏览器的很大一部分),所以我更喜欢非单片设计的浏览器,这样我就不必在项目中包含渲染内容。

    如果它有C++而不是C API就好了。

    我需要这个嵌入式浏览器,主要是因为我很难找到C++ HTML解析器,它可以处理像浏览器一样破碎的HTML。
    如果你知道,请回答 Library Recommendation: C++ HTML Parser 所以,提问或者至少投票来增加某人给出一个好答案的机会。

    8 回复  |  直到 10 年前
        1
  •  7
  •   chmike    15 年前

    关于嵌入不需要呈现功能的Web浏览器的问题,我有点困惑。Web浏览器正在根据定义呈现网页,除非您只需要具有浏览器功能子集的javascript功能的HTTP和XML?

    如果您需要在您的C++应用程序中嵌入Web浏览器,我建议考虑WebKIT插件附带的QT。它是C++,LGPL,有一个非常好的IDE(Qt Creator)。我在Unix(Ubuntu)上用qt creator尝试了qt,它非常令人印象深刻。调试器有点轻,但它只是第一个版本。Qt到Visual C++ 2008的适配器现在是免费的。

        2
  •  8
  •   Aaron Maenpaa    15 年前

    听起来你只需要 libcurl 这是一个HTTP库,允许您获取/post/etc。

    当我想到浏览器时,我通常认为渲染/javascript而不是HTTP库。

    编辑

    如果那样的话,我会看看 WebKit (我认为它有一个C++ API),希望你不必拉太多。

    再次编辑

    再想一想(因为渲染是浏览器所做工作的重要组成部分),最好使用类似于 SpiderMonkey 一个独立的XML解析器 Xerces-C (加上可能 tidy 将HTML转换为XML)。

        3
  •  4
  •   Adam    14 年前

    您可能还想退房 Awesomium --它可以免费用于非商业用途,并具有您想要的所有功能(如果您不需要渲染,只需不使用它)。

        4
  •  4
  •   jave.web    10 年前

    有一个叫CEF的项目= The Chromium Embedded Framework -是:

    一个简单的框架 在其他应用程序中嵌入基于Chromium的浏览器。这是一个 BSD授权的开源项目,由Marshall Greenblatt于年创建。 2008年,基于谷歌铬项目。不像铬 项目本身,主要关注Google Chrome应用程序 开发,CEF专注于促进嵌入式浏览器用例 第三方应用程序。

    是的:

    CEF基础框架包括对C和C++编程的支持 语言。

        5
  •  3
  •   devdimi    15 年前

    包括Javascript支持和HTML解析使这项任务变得非常重要——您必须使用一个可用的浏览器。

    • IE可以通过它的COM模型使用——你可以在你的窗口中创建它的实例,不管它是否不可见,并调用它的javascript/html功能。

    它从一开始就被设计成这样使用,当然它工作得很好。

    其他选项包括:

    • Gecko/Mozilla——几年前,它不能像这样使用,现在我认为是这样。

    • webkit/v8-还没有为chrome发布公共API,您可以使用webkit本身,但它没有javascript引擎。另一个选择是看一下Chrome代码库,看看你是否能从中得到你需要的东西。

    我可能会选择IE,因为它可能是最简单的选择,而且我已经用过了。在我看来,其他选项更像是构建一个浏览器而不是仅仅使用它。

        6
  •  2
  •   green_t    15 年前

    怎么样 Gecko ?您可能不需要整个引擎,但您可能会发现一些有用的组件,例如 SpiderMonkey 这是一个用C语言编写的javascript引擎。

        7
  •  2
  •   Eli Bendersky    15 年前

    我建议选择C++编程的Qt。它有一个内置的图书馆 embeds Webkit 有了所有的铃声,QT通常是一个很棒的C++库。

        8
  •  0
  •   Cristian Amarie    13 年前

    老问题,我知道,不过看看 http://msdn.microsoft.com/en-us/library/ky29ffxd%28v=vs.94%29.aspx

    IActiveScript和Family COM接口允许在内存中执行脚本(不仅仅是JS,任何注册为脚本中介的语言,就这点而言)。