2

我需要用 C++ 编写跨平台的 GUI 应用程序,但由于 C++ 的大多数 GUI 库有点乏味,而且我对 C#/.NET 非常熟悉,我发现带有 GTK 的代码 Vala 代码非常有趣,并且与其他方式相比有点容易.那么我将如何将 VALA 与 C++ 混合。我的意思是在 C++ 中使用 VLA 作为前端和代码其余部分。

4

4 回答 4

10
  1. 您可以从 C++ 调用 vala 生成的代码,但它是普通的 C 并且从 C++ 中使用非常痛苦。
  2. Vala 只能调用 C 代码,因此您必须将所有 C++ 代码封装在extern "C"一个中。
  3. 通过 Gtkmm 从 C++ 中使用 Gtk 并不比从 Vala 中使用 Gtk 更难,Qt 也不难。
  4. Qt 是唯一真正跨平台的选项。Gtk 现在可以在 MacOS X 上原生运行,但仍然不够稳定。Qt 也适用于大多数智能手机平台,而 Gtk 则不行。
  5. Vala 与 C# 不太相似,但也有一些怪癖。

一般来说,我建议改用 Qt。

于 2012-01-11T13:10:50.313 回答
1

Vala 编译为 C,大量使用 GObject 类型系统。您可以使用 glibmm 来使用它,它是C++中gtkmm的一部分。但你也可以只使用 gtkmm(即使用 GtkBuilder)然后......</p>

于 2012-01-11T09:59:32.567 回答
0

它可能无法完全回答您的问题,但如果您使用mono将 C# 嵌入到 c++ 中,则可以直接从 windows 使用GTK#(它也可以在 mac 和 linux 中编译和运行)。

然后,您将能够将 C#/GTK# 用于前端并在 c++ 中编写其余部分的代码。

于 2012-01-11T09:52:56.760 回答
-4

如果满足您的要求,您可以使用 QT。Qt 是一个跨平台的应用程序和 UI 框架,带有用于 C++ 编程的 API。 http://developer.qt.nokia.com/doc/qt-4.8/gettingstartedqt.html

于 2012-01-11T12:08:14.180 回答