如何在 C++ 中嵌入 Chromium 嵌入式框架

How to embed Chromium Embedded Framework in C++

我在 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.[=16= 接口感到困惑]

我想要的只是一个 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 在此处托管:http://opensource.spotify.com/cefbuilds/index.html

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

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

例如,您启动一​​个新的 Visual Studio 项目并复制 CEFSimple 文件,然后 link 复制到 CEF3 DLL 的 .lib。按照现有逻辑分离出 OS 特定部分。

在 Windows 中,对于本机 C++,linker 在构建 EXE 时使用 .lib 文件(参见 Linking : .a, .lib and .def files):

Linker - Input   (edit paths to match where you copied the binary files)
..\..\cef_binary_3\Release\libcef.lib
..\..\cef_binary_3\build\libcef_dll_wrapper\Release\libcef_dll_wrapper.lib

为了分发您的应用程序,您包括了您的 EXE、DLL、.PAK 文件和 2 个 _blob.bin 文件。 CEFClient 示例二进制版本中的所有文件,除了相同的 .EXE。是的,压缩后的大小确实超过 50 MB!这是因为与微软的 IE web 控件不同,浏览器的任何部分都不包含在操作系统中。

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