我如何将C ++与VALA混淆

时间:2012-01-11 09:43:36

标签: c++ vala

我需要在C ++中为跨平台编写GUI应用程序,但由于C ++的大多数GUI库都很乏味,而且我对C#/ .NET非常熟悉,因此我发现使用GTK的代码Vala代码非常有趣并且比较容易比较与其他方式。所以我如何将VAlA与C ++混淆。我的意思是在前端使用VALA,在C ++中使用部分代码。

4 个答案:

答案 0 :(得分:9)

  1. 你可以从C ++调用vala生成的代码,但是它很简单,而且从C ++中使用起来非常痛苦。
  2. Vala只能调用C代码,因此您必须将所有C ++代码包装在extern "C"中。
  3. 通过Gtkmm从C ++使用Gtk并不比使用Vala更难,Qt也不难。
  4. Qt是唯一真正的跨平台选项。 Gtk现在可以在MacOS X上本地运行,但仍然不够稳定。 Qt也适用于大多数智能手机平台,Gtk没有。
  5. Vala与C#不太相似,并且拥有quri的份额。
  6. 一般来说,我建议改用Qt。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

然后,您将能够使用C#/ GTK#作为前端,并使用c ++编写其余部分代码。

答案 3 :(得分:-3)

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