使用.NET GUI的跨平台C ++应用程序?

时间:2009-11-06 20:32:53

标签: .net c++

我在跨平台桌面开发方面有几年的经验(Windows和MacOSX,而​​不是Linux(至少不适用于GUI应用程序))。通常我使用Cocoa在MacOSX上创建GUI,在Windows上我使用老式的Windows API。我没有使用过Qt,因为当我开始时它仍然是GPL许可证。

我发现本机体验非常重要,所以我会继续使用Cocoa for Mac。但是对于Windows,我正在考虑将.NET框架用于GUI代码。我没有将.NET代码与现有的跨平台C ++代码库集成的经验,似乎我可以使用C ++ / CLI或C#。

以前有人做过这样的做法吗?它运作得好吗?您是否需要将.NET框架与安装程序捆绑在一起?添加的.NET代码是否会给最终的可执行文件增加很多重量?

4 个答案:

答案 0 :(得分:1)

你可以使用Mono,这是非常好的跨平台。

在Windows上,我建议您使用Visual Studio,同时查看Express版本(它不是跨平台版)。

  

以前有人做过这样的做法吗?

  

它运作得好吗?

当然!

  

您是否需要将.NET框架与安装程序捆绑在一起?

没有

  

添加的.NET代码是否会给最终的可执行文件增加很多重量?

Depends中

不是.Net:还要检查QtGTK+;)

答案 1 :(得分:1)

我考虑过这个但放弃了因为.NET框架增长得更快,然后你可以眨眼睛。 NET 3.5是一个hundert MB下载,是的,你的用户需要它。

我目前正在为我的应用程序开发GTK / Delphi / Cocoa跨平台库。我将Delphi编译成一个DLL并使用它来自一个通用的C / C ++代码库,因为我发现Delphis VCL更好更容易使用。

我同意 - 至少对于ISV而言 - GUI的集成和质量变得越来越重要,因为这是与免费开源软件市场的重要区别。

答案 2 :(得分:1)

是的,您需要将.NET框架与安装程序捆绑在一起,或者通知用户他们需要安装它并提供一个尚未安装的链接。根据我的经验,添加的.NET代码确实为可执行文件增加了一些可观的重量,但我发现在没有它的机器上安装.NET框架会更加不方便 - 安装确实需要相当多的时间时间。

答案 3 :(得分:-3)

Qt根据GPL获得许可的相关性是什么?请记住,这并不意味着您的代码必须根据GPL许可;我们使用Qt开发了许多专有应用程序。但是,如果您修改 Qt并使用这些修改释放应用程序,则必须释放修改(但不包括任何其他代码)。我们在构建跨平台Qt应用程序方面取得了很大成功,模拟了一些出牙问题,主要是多线程。

就.NET而言,C ++ / CLI可能是与现有C ++代码库集成最不痛苦的方式。必须安装.NET框架才能运行应用程序,但它不一定必须与安装程序捆绑在一起,因此已经拥有.NET的人不必再次下载它。它肯定会给可执行文件增加一些重量,但普通的台式机PC不会注意到它;您的软件设计和算法选择将产生更大的影响。