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

时间:2009-05-07 15:02:40

标签: c++ browser

我可以在Windows上嵌入C ++应用程序吗?

我需要典型浏览器的所有功能(HTTP客户端,cookie支持,DOM样式HTML解析器,JavaScript引擎)除了呈现。 因为我不需要渲染功能(而且这是浏览器中相当大的一部分),我宁愿使用非单片设计的浏览器,所以我不必将渲染内容包含到我的项目中。

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

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

8 个答案:

答案 0 :(得分:8)

听起来像你需要的是像libcurl这样的HTTP库,它会让你做GET / POST /等。

当我认为浏览器时我通常认为渲染/ JavaScript而不是HTTP库。

修改

在这种情况下,我会查看WebKit(我认为它有一个C ++ API)并且希望你不必过多地使用它。

再次编辑

第二个想法(因为渲染是浏览器的重要组成部分),你可能最好使用像SpiderMonkey这样的独立JS引擎和像{{3}这样的独立XML解析器。 (加上可能Xerces-C将您的HTML转换为XML)。

答案 1 :(得分:7)

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

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

答案 2 :(得分:4)

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

答案 3 :(得分:4)

有一个名为CEF = The Chromium Embedded Framework的项目 - 它是:

  

一个简单的框架   在其他应用程序中嵌入基于Chromium的浏览器。它是一个   由Marshall Greenblatt创立的BSD许可开源项目   2008年,基于Google Chromium项目。与Chromium不同   项目本身,主要侧重于谷歌Chrome应用程序   开发方面,CEF专注于促进嵌入式浏览器用例   第三方应用程序。

是的:

  

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

答案 4 :(得分:3)

包括javascript支持和html解析使得这个非常重要的任务 - 你必须使用一个可用的浏览器。

  • IE可通过其COM模型使用 - 您可以在窗口中创建它的实例,无论它是否隐藏,并调用其javascript / html功能。

它的设计从一开始就被这样使用,当然它工作正常。

其他选项包括:

  • Gecko / Mozilla - 几年前它不可用,目前我认为是。

  • WebKit / V8 - 尚未针对chrome发布公共API,您可以使用webkit本身,但它没有javascript引擎。另一种选择是查看Chrome代码库,看看是否可以满足您的需求。

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

答案 5 :(得分:2)

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

答案 6 :(得分:2)

我建议选择Qt进行C ++编程。它有一个内置的库embeds Webkit和所有的铃声,而且Qt是一个很棒的C ++库。

答案 7 :(得分:0)

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

IActiveScript和系列COM接口允许在内存中执行脚本(不仅是JS,任何注册为脚本插件的语言)。