【问题标题】:Developing lightweight (no runtime) Windows based GUI applications using free tools [closed]使用免费工具开发基于 Windows 的轻量级(无运行时)GUI 应用程序 [关闭]
【发布时间】:2010-10-10 00:24:42
【问题描述】:

有人知道可以支持在 Windows 平台上开发 GUI 应用程序的免费工具(语言、环境)吗?

我希望能够创建一个不依赖于任何外部运行时或库的单个可执行文件。

我希望能够以与 SysInternals 的 Process Explorer 或 Autoruns 非常相似的方式运行此 EXE。换一种说法;无需安装程序,可移植的应用程序。

此应用程序还必须提供相当丰富的窗口(控件、小部件等)用户界面,并且应该在 Windows 2000、XP、Vista 和更高版本上运行。

我了解 C/C++,但我正在寻找一种能够为 GUI 开发提供更具体和更快的支持的环境/语言。此外,Delphi 需要花钱。

【问题讨论】:

  • 刚刚添加 AutoIt3.exe 作为对您评论的回应
  • 刚刚添加了 AutohotKey 评论作为我回答的补充
  • 现在大多数 Windows PC 至少有 .Net 2.0 运行时,所以我不会真的认为这是一个障碍或外部依赖。它与依赖 Windows 本身一样多的依赖。当然 Win2000 机器可能没有它,但那是一个有 10 年历史的操作系统
  • @csjohnst,我真的很希望能够在每台 Windows PC 上依赖 .NET 2.0,但我没有发现这种情况。我与许多非技术用户打交道,如果我不需要在他们的 PC 上安装一些可怕的“框架”来运行我的小应用程序,那总是更容易。
  • ... 刚刚添加了 Autoit 调试工具链接,以响应您的命令

标签: windows user-interface desktop-application portability


【解决方案1】:

对于快速原型设计,Autoit 是一个可行的选择(但它是一种脚本语言)。

结合Scite作为编辑器和autoit to exe capability(Scite中的AutoIt3.exeAutoit3Wrapper.exe实际生成exe),你就有了一个完整的GUI开发环境。


AutohotKey 是一个替代方案,但基于旧的 AutoitV2。

不过,您可以从 Autoit 执行 AutohotKey 脚本;)

Run("c:\Program Files\Autohotkey\Autohotkey.exe c:\scripts\devicesset.ahk")

虽然原生不支持交互式调试,但它们是(2008 年,但在 2014 年:是?)several debugging tools 以促进调试过程。 (来自ticket

2014 年更新:可能不支持“AutoEditDebugger”:

编辑 2009 年 10 月:注意此脚本自 2008 年以来一直没有维护。由于编辑器的一些问题,它在 Vista 中崩溃。

【讨论】:

  • 它是否将运行时编译成输出.exe?
  • @VonC,我实际上已经将 Autohotkey 用于关键宏、快捷方式等,并且知道它可以做基本的 GUI。只是实际的语言相当“繁琐”,我发现调试起来有点困难。我会检查一下 Scite,看看它是否也支持 Autohotkey,谢谢。
  • 感谢您提供额外信息。我将比较 AutoIt 和 AutoHotkey。如果我可以交互式调试 AutoIt 脚本,那可能正是我想要的。
  • @VonC,对于您对此答案所做的更新,您应该获得额外的投票!
【解决方案2】:

Delphi 绝对是一个不错的选择。 有一个免费版本,称为Turbo Delphi。 可用的版本已经有几年的历史了,所以很遗憾他们还没有发布新东西的 Turbo 版本。

还有完整的 RAD Studio 的 trials available,但我认为这不是您想要的。

【讨论】:

  • 看起来很有希望,谢谢。你自己用过吗?此外,它与最适合快速 GUI 开发的 Turbo C++ 和 Turbo Ruby 相比如何?
  • 我没有使用 Turbo 版本,所以无法评论。 Delphi 本身是一种快速简便的开发方式,尽管它有一些怪癖。我个人更喜欢C#。没有尝试过 Turbo C++ 或 Ruby。
  • @Ash,Delphi 是 GUI 开发中最好的,它也是你可以用任何语言编写的最易读的代码,如果你长时间离开它,这比其他代码更容易维护。 aslo Turbo C++ 与 Delphi 具有相同的 Rad 方式,因为它使用相同的 VCL 框架。但我更喜欢用 Delphi 编写代码。
【解决方案3】:

您可以免费获得Turbo Delphi and Turbo C++ Builder explorer 版本,您可以使用它们开发本机应用程序,您可以只拥有.exe 文件而不依赖任何Windows 版本(从win98 到win7),它们都包括200 多个组件,您可以使用更多(无需安装到唯一限制的 IDE),并且您可以使用它们开发免费和商业软件。

Delphi 是最 RAD(快速应用程序开发)IDE,您可以使用它以非常简单和高效的方式生成 Windows 应用程序,与 C++ 的速度相比,您可以快速开发应用程序,并且执行时间更快。

使用Lazarus IDE 的另一个选项,它基于FreePascal 编译器,因此您可以让您的应用程序在windows/linux/MacOS/Unix 等平台上运行。

【讨论】:

  • 谢谢,Ray 也提到了这一点。我主要是一名 .NET 开发人员,但我曾在 Delphi 公司的迁移工作过一段时间。我同意 Delphi 提供的 Dektop RAD 工具非常强大,可能比 WindowsForms 等更快。
【解决方案4】:

Visual C++ Express + WTL。两者都是免费的。 WTL 是一个比较好的(1)窗口库。不过没有向导,你必须对 Win32 窗口系统有很好的了解。

您还可以使用Visual C# ExpressMono 来构建WinForms 应用程序。虽然最终结果在技术上不是一个独立的可执行文件并且需要一个框架,但 Mono dll 可以与您的 exe (2) 一起分发,因此您只需一个文件夹即可进行 xcopy 部署。 (而且我认为在安装了 .Net 的 Windows 上,您的 exe 将自动在 .Net 上运行)

  • (1) 我被 WPF 宠坏了。 :-)
  • (2) 阅读内胎。不过,我还没有亲自尝试过。

【讨论】:

  • 我很欣赏 WTL 链接,我没听说过。我已经拥有完整的 VS2008,所以我会使用它而不是 Express 版本。单声道建议很有趣,我想知道它是否可以在没有任何 .NET 框架的 Windows 机器上工作(即只使用 XCopied 单声道 dll)。
  • 这就是互联网上各种人声称的 - 您可以将 Mon dll 与您的应用程序并排复制,它会在没有 .Net 的机器上运行良好。我没有这样的机器:-),不过我没有尝试过这种情况。
【解决方案5】:

鉴于您关于 C++ 的声明,这可能不是一个选项,但如果您正在开发一个开源/免费应用程序,那么 Qt 是一个非常不错的带有设计器的 GUI 工具包。

另外,wxWidgets 是一个非常实用的工具包,它允许您部署单个 exe,尽管最好的 GUI 设计者不是免费的。

【讨论】:

  • Qt 4.5 将是 LGPL,因此它可以免费用于闭源开发。
  • 你也可以使用其他语言的 Qt 和 wx
  • 这需要在客户端机器上安装QT吗?
【解决方案6】:

也许D 是一个选项?我的一个朋友写了一篇关于 D here 的 GUI 设计器的博客,我相信生成的可执行文件没有依赖关系。

【讨论】:

    【解决方案7】:

    只需将 VS.NET 与 C 和 Win32 api 一起使用。

    当然不需要运行时,因为 CRT 是本机的。

    【讨论】:

      【解决方案8】:

      您应该使用纯 C 语言中的 Digital Mars C/C++ 并使用 WIN32 API 的 GDI32 函数进行编程(只需 #include )。不要忘记将二进制对象可执行文件与 gdi32.lib 链接。

      【讨论】:

        【解决方案9】:

        查看 Microsoft 的 Express editions 开发者工具。

        【讨论】:

        • VC++ Express 尤其如此,毕竟 C# 等都需要 .NET 运行时。这是他已经打折的东西。据我所知,这个答案没有提供任何新内容。
        • 是的,.NET 不是一个选项,我解释了为什么 C++ 不理想。
        • 我的错,错过了对外部运行时或库的引用。德文,感谢伟大的主观评价。 ;-)
        【解决方案10】:

        如果您正在做非常简单的应用程序,AutoIt 可能是一个选项,因为它不需要运行时文件,而且它的可执行文件甚至可以在 WinPE 上运行。虽然它有点原始,但并不完全是面向对象的。它的工作方式有点像旧的 VB。然而,它是免费且易于学习的,除了 NSIS(NullSoft 安装系统)之类的东西之外,免费的独立 GUI 创建者并不多。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-01
          • 2017-11-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多