如何在C++中嵌入 Chromium Embedded Framework

How to embed Chromium Embedded Framework in C++

本文关键字:Chromium Embedded Framework C++      更新时间:2023-10-16

我在Visual Studio中创建了一个音频软件项目。我想让它跨平台,所以我没有使用 winforms,而是开始了空项目。

但是我想在前端部分使用 HTML/CSS/JS,为此我在互联网上查找并找到了Sciter。它简单易用,但达不到标准,因为我想使用许多不可用的 html 功能。所以我决定使用chromium embedded framework.

但是由于我是C++编程新手,尤其是Visual Studio,因此我无法弄清楚需要将哪些文件导入到我的项目中才能使其正常工作。起初,我试图使用源代码,这样就可以跨平台使用。但是我发现编译源代码非常困难,所以我决定改用.dll文件。所以我下载了CEF的标准Windows x64发行版。

但我真的对如何将它包含在我的项目中感到困惑。我看过在线视频,但它们适用于 C#,我正在使用C++。我也看过.Net版本的教程,但由于我没有使用任何.net控件或winforms库,所以我对如何使用它生成GUI以及与javascript的接口感到困惑。

我想要的只是一个 CEF 的 kisok 实例,我将在其中使用 c++ 加载 html/css/js(通过将字符串值传递给 c++ 函数或 chrome API(。我将使用 Vue.js 库来简化 JavaScript 部分的工作。以及一些在javascipt和c ++之间输入和获取数据的方法

我试图使用CEFSharp,但我惨败并切换回来。 现在我被libcef.dll和其他此类文件困住了,我无法理解该怎么做。我在将include文件添加到我的项目中时遇到问题。我找不到引用.dll文件和所有这些东西的方法。我没有在 c++ 中导入第三方库的经验。

请向我推荐一个资源或一些教程来解决我的问题。(请不要使用 winforms 或 .net 控件,我想使用本机 C++ 代码完成所有操作,因为稍后我想将其移植到 Linux 和 mac(

另外,请向我建议一些方法,以便我也可以使这个CEF诱导的代码库移植到Linux和Mac。

谢谢。

Chromium Embedded Framework有一个由其开发人员在这里运行的论坛:http://www.magpcss.org/ceforum/index.php。 请参阅支持子论坛中的常见问题解答。

有可用于Windows,OS X和Linux的二进制发行版。 它们目前由Spotify托管在这里:https://cef-builds.spotifycdn.com/index.html

提供的 CEF3 文件是本机文件C++而不是 .Net。 有一个CEFSharp项目为.Net包装CEF3,但它是用于C#的。

大多数人要开始使用 CEFSimple 或(功能更齐全的(CEFClient 示例应用程序。 编写的这些应用程序与不同的操作系统兼容。 这些作为源代码提供,用于已编译的 Chromium + CEF3 DLL。

例如,您启动一个新的Visual Studio项目并复制CEFSimple文件,并链接到CEF3 DLL的.lib。 按照现有逻辑分离出特定于操作系统的部分。

在适用于本机C++的 Windows 中,链接器在构建 EXE 时使用 .lib 文件(请参阅链接:.a、.lib 和 .def 文件(:

Linker - Input   (edit paths to match where you copied the binary files)
....cef_binary_3Releaselibcef.lib
....cef_binary_3buildlibcef_dll_wrapperReleaselibcef_dll_wrapper.lib

为了分发应用程序,您需要包括您的 EXE、DLL、.PAK 文件和 2 个_blob.bin文件。 CEFClient 的示例二进制版本中的所有文件,但同一.EXE除外。 是的,压缩大小确实是100+ MB! 这是因为与Microsoft IE Web控件不同,操作系统中不包含浏览器的任何部分。

在 CEF 论坛中搜索有关运行全屏模式的提示。 对于 Windows,这意味着在创建主浏览器窗口时更改窗口样式位WS_和WS_EX。