我该如何将C++与VALA混淆
How would I mix up C++ with VALA
我需要用C++为跨平台编写GUI应用程序,但由于C++的大多数GUI库都有点乏味,而且我非常熟悉C#/.NET,我发现使用GTK的代码Vala代码非常有趣,与其他方法相比也有点容易。那么我该如何将Vala与C++混合呢。我的意思是前端使用VALA,其余部分用C++编写代码。
- 您可以从C++中调用vala生成的代码,但它是纯C代码,从C++中使用非常痛苦
- Vala只能调用C代码,所以您必须将所有C++代码封装在
extern "C"
中 - 通过Gtkmm从C++中使用Gtk并不比从Vala中使用它更难,Qt也不难
- Qt是唯一真正跨平台的选择。Gtk现在可以在MacOSX上原生运行,但仍然不那么稳定。Qt也适用于大多数智能手机平台,Gtk则不然
- 瓦拉和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
相关文章:
- 增量运算符与后缀混淆
- C++图形类指针混淆
- OpenCV C++.快速计算混淆矩阵
- 结构和双指针隐藏在其他结构中,多层混淆
- 混淆了如何使用IDL与Ethovision进行通信
- 关于 std::min, std::max 中的比较运算符的混淆
- 对单链表的混淆
- CMake - 模块 + 库混淆
- 与 for 循环中的变量混淆
- 与浅拷贝构造函数和深拷贝构造函数混淆
- 模板参数部分中有关包扩展的一些混淆
- NS3 插槽混淆(需要帮助理解)
- 与指针算术混淆
- write() 和 read() 中几乎没有混淆
- 与C++哈希表的基础知识混淆
- 混淆 Begin() 方法作为参数
- 编译器生成的默认构造函数具有 constexpr 混淆行为
- 重命名 win32api 函数以进行混淆
- 与 boost::locale 关于"ß"大写的例外行为混淆
- 我该如何将C++与VALA混淆