我该如何将C++与VALA混淆

How would I mix up C++ with VALA

本文关键字:VALA 混淆 C++      更新时间:2023-10-16

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

  1. 您可以从C++中调用vala生成的代码,但它是纯C代码,从C++中使用非常痛苦
  2. Vala只能调用C代码,所以您必须将所有C++代码封装在extern "C"
  3. 通过Gtkmm从C++中使用Gtk并不比从Vala中使用它更难,Qt也不难
  4. Qt是唯一真正跨平台的选择。Gtk现在可以在MacOSX上原生运行,但仍然不那么稳定。Qt也适用于大多数智能手机平台,Gtk则不然
  5. 瓦拉和C#不太一样,也有自己的风格

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

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

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

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

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