【问题标题】:How can i make a portable C++ program for Windows with GUI, independent from .NET or other Libs?如何使用 GUI 为 Windows 制作可移植的 C++ 程序,独立于 .NET 或其他库?
【发布时间】:2014-03-07 21:19:45
【问题描述】:

我想制作一个C++程序图形用户界面,在Windows平台上运行。

我希望它独立于 .NET 等任何库

我想要这个的原因是因为我希望这个程序能够在每个版本的 Windows(XP、VISTA、7 - 32 和 64 位)中运行,而无需用户绑定已经安装了类似的库。网。

另外,我希望它便携:整个程序只包含一个 exe 文件。

总结一下:

如何制作一个单 exe 文件的 GUI C++ 程序,能够在所有版本的 Windows 上运行,而不需要使用它的用户在 Windows 上预安装库?

我的系统上已经安装了带有 Cygwin 的 G++ 编译器的 MS Visual C++ 2010 Express 和 Eclipse。

注意:我不介意将任何库用于 Windows GUI 设计如果有办法将它们嵌入到程序的可执行文件中

【问题讨论】:

标签: c++ winapi user-interface portability windows-applications


【解决方案1】:

您可以使用可以静态链接的库(MFC、WTL)或直接使用 Win32 API。

【讨论】:

  • 我怎样才能用 Visual C++ '10 Express 做到这一点?当我创建一个 Win32 应用程序的新项目时,没有选择 静态链接...我也不能选择 MFC 或 WTL...
  • MFC/ATL 不包含在 Express 版本中
  • 有一种方法可以将 WTL 与快速版本的 Visual Studio 一起使用。例如:codeproject.com/Articles/12705/…
  • @MinimalTech:“Win32 库”是 Windows。您不会将 Windows 静态链接到您的程序。但是,正如 Cheers... 所提到的,您需要静态链接 C/C++ 运行时;另一种选择是根本不链接到 C/C++ 运行时。
  • @MinimalTech:在项目设置、C/C++、代码生成下,有一个选项“运行时库”。选择没有“DLL”的版本,即 /MT 和 /MTd 分别用于发布和调试版本。
【解决方案2】:

WxWidgets 有静态链接能力,我自己没试过。

【讨论】:

  • UldisK,我可以在没有任何法律问题的情况下将此库与静态链接一起使用吗?另外,我能否使用工具箱向我的表单(窗口)添加按钮/标签菜单和其他控件?代码会在源码视图中自动编写吗?
  • 该库在修改后的 LGPL 下获得许可。如果理解正确,其中一项修改是,它可以是静态链接的。我想我已经看到了一些表单构建器,但是我已经很长时间没有使用 WxWidgets 并且更新它们了,所以我不知道它们有多好。
【解决方案3】:

如果您想要可移植性,但又不想依赖第 3 方库……那么您必须自己提供可移植性!不要这样做!正如 OneOfOne 所建议的那样,使用 Qt 并为它的简单而强大留下深刻印象。祝你好运!

【讨论】:

    【解决方案4】:

    您也可以使用Qt5,它在 Windows 上运行良好,当您发现 Windows 不是唯一的操作系统时,您可以轻松地将其移植到其他所有操作系统。

    许可证问题:Proprietary Source code + LGPL Source code

    【讨论】:

    • 如果应用程序是封闭源代码,我认为与 qt 的静态链接存在一些法律问题......问题没有说明任何相关内容,但应该提及..
    猜你喜欢
    • 2015-09-02
    • 2010-11-08
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2016-09-11
    相关资源
    最近更新 更多