【发布时间】:2017-06-30 14:49:57
【问题描述】:
我正在 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。
谢谢。
【问题讨论】:
-
对于初学者级别的 C++,使用 Qt/QML 可能会更好,它有一个基于 Chromium 的 WebEngine control,如 CEF。因此,您基本上可以获得与 CEF 相同的功能,但在“包含电池”的包中。他们有一个minimal example,看起来非常简单。
-
我看过QT,但我不想用它,因为这将是一个商业项目,我不愿意在QT上花钱
-
@SoumyaKantiSar:您可以在商业项目中使用 Qt,也可以使用动态链接。见这里:qt.io/licensing-comparison。您只需要确认您所需的功能不属于商用列表。
-
顺便说一句,它与 CEF 类似,它是 BSD 许可的,但您还必须考虑它所基于的 Chromium 组件的 所有 许可证。在谷歌浏览器中输入
chrome://credits来了解一下。您需要律师来验证所有这些都可以用于特定的商业场景。 -
@Azeem 老实说,我还没有看到 QT 的动态链接,而且由于我是 C++ 新手,我什至不知道动态链接是什么。但这似乎很有希望。
标签: c++ user-interface chromium-embedded