代码之家  ›  专栏  ›  技术社区  ›  StackedCrooked

跨平台的C++应用与.NET GUI?

  •  2
  • StackedCrooked  · 技术社区  · 15 年前

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

    我觉得本地的体验非常重要,所以我会继续使用可可作为Mac。但是对于Windows,我正在考虑使用.NET框架来编写GUI代码。我不具备将.NET代码与现有的跨平台C++代码库相结合的经验,而且我似乎可以使用C++/CLI或C语言。

    以前有人这样做过吗?结果如何?是否需要将.NET框架与安装程序捆绑在一起?添加的.NET代码是否会给最终的可执行文件增加很多权重?

    4 回复  |  直到 15 年前
        1
  •  1
  •   luvieere    15 年前

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

        2
  •  1
  •   Nathan Campos    15 年前

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

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

    以前有人这样做过吗?

    是的

    结果如何?

    当然!

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

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

    取决于

    非.NET:也请检查 Qt GTK+ ;)

        3
  •  1
  •   Lothar    15 年前

    我考虑过这一点,但放弃了,因为.NET框架的增长速度比你眨眼的速度快。NET 3.5是一个百兆的MB下载,是的,您的用户需要它。

    我目前正在为我的应用程序开发一个GTK/Delphi/Cocoa跨平台库。我把Delphi编译成一个DLL,并从一个普通的C/C++代码库中使用它,因为我发现Delphis VCL好得多,使用起来也更方便。

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

        4
  •  -3
  •   qid    15 年前

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

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