wildmelon
V2EX  ›  问与答

开发单个 exe 桌面应用程序,用什么语言、技术合适?

  •  
  •   wildmelon · Aug 10, 2021 · 5979 views
    This topic created in 1916 days ago, the information mentioned may be changed or developed.
    标题借用自: https://www.zhihu.com/question/453979660

    站内同类型: https://www.v2ex.com/t/446288#;

    最近用批处理帮策划弄了点小工具,感觉还挺有意思的,想往上一点弄个图形界面,再集成一些第三方处理库。可能最终形态是一个能带图形的游戏配置编辑器?

    目前想到的点:
    1. 开发效率
    2. 扩展性?比如很方便地塞一个 webview 之类的
    3. 运行环境,打包运行方便
    4. 不需要跨平台

    结果是各种语言越搜越多... 目前来看 WPF 和 Qt 似乎比较合适?
    24 replies  •  2022-11-26 19:31:03 +08:00
    supermoonie
    supermoonie
    Aug 10, 2021 via iPhone
    1
    只会 java 目前用的 jcef
    nick0x01
    nick0x01
    Aug 10, 2021
    2
    qt 静态编译并不方便,还是 c#方便一点。

    普通人用用的话,python 开发比较省事,可以用 qt for python+qwebview+pyinstaller 打包单个 exe,启动慢点。
    我觉得没啥问题,看上去是单个 exe 就行,或者做个安装包,用 fbs 或者 pynsist 。
    yitingbai
    yitingbai
    Aug 10, 2021❤️2
    3
    我看了你这 4 点描述, 完美契合 易语言 的使用场景, 虽然很多人道貌岸然的程序员看不起这个语言
    EKkoGG
    EKkoGG
    Aug 10, 2021
    4
    其实你已经有答案啦,不需要跨平台,永远是 C#最方便
    J55s5
    J55s5
    Aug 10, 2021
    5
    1. Qt 的话可以使用 QML,开发效率杠杠的。但是 C#的开发效率一定也不低
    2. webView 的话,QML 可以搞定
    3. 运行环境的话,Qt 需要把整个东西打包带走。体积还算蛮大的。但是 C#的话,小巧宜人。打包的问题我觉得倒不需要考虑,脚本写完万年不改的东西
    4. 不需要跨平台,在 Windows 首选 C#
    icy37785
    icy37785
    Aug 10, 2021 via iPhone
    6
    感觉你的需求很适合用易语言,但是我自己没用过也不那么确定,c#应该也挺合适的
    XhstormR02
    XhstormR02
    Aug 10, 2021 via Android
    7
    简单小巧的 纯 C GUI,可以从这开始看 https://github.com/XhstormR/GetBilibili-C/blob/master/src/main.c#L164
    mxT52CRuqR6o5
    mxT52CRuqR6o5
    Aug 10, 2021 via Android
    8
    我记得易语言自带的 webview 好像是 ie 吧,除了这点其他好像都很符合需求
    我能想到的就是 c#和易语言了
    tianxia
    tianxia
    Aug 10, 2021 via Android
    9
    aardio
    WildCat
    WildCat
    Aug 10, 2021
    10
    http://tauri.studio
    levelworm
    levelworm
    Aug 10, 2021 via Android
    11
    c#或者熟悉 c++的话上 qt 。qt 其实开发速度还成,最近写了个地图编辑器的雏形,习惯了基本的概念纠结的还挺快的。
    wafm
    wafm
    Aug 10, 2021
    12
    易语言
    agagega
    agagega
    Aug 10, 2021 via iPhone
    13
    要是 Windows/Linux 有类似 Mac Catalyst 的技术就好了,安卓 App 改改重新在桌面上编译一下就适配。
    secondwtq
    secondwtq
    Aug 11, 2021
    14
    说个冷门的,Pascal 一系,就是 Delphi/VCL, Free Pascal/Lazarus 之类的
    很久之前用过 Delphi 7,感觉还不错,现在 Free Pascal 做跨平台应该也不差 ... 吧 ...
    kwanzaa
    kwanzaa
    Aug 11, 2021
    15
    Flutter
    g00001
    g00001
    Aug 11, 2021
    16
    如果原来就会批处理想做图形界面,或者是为了方便的嵌入 WebView,倒是可以试试 aardio

    首先说批处理,aardio 可以非常方便的嵌入与混合很多第三方语言,支持 C 语言、C++、VB 、C#、Java 、Python 、Javascript 、Node.Js 、Flash ActionScript 、PHP 、VBScript 、NewLISP 、AutoLISP 、Delphi 、FreeBASIC 、Ruby 、Rust 、Julia 、Nim 、Go 语言、批处理 ...... 这一大堆,当然了,其中就有批处理。

    用 aardio 嵌入批处理不仅仅是可以简单的调用执行,可以做到:
    1 、通过管道执行批处理,不再有默认的黑窗口,可以方便的替换为图形界面。
    2 、可以生成独立的 EXE 文件,不用带一堆批处理文件,可以方便的给批处理传参数。
    3 、可以使用模板语法将批处理与 aardio 代码混写,类似 PHP 代码与 HTML 代码混写。

    下面是一个简单的例子:


    执行效果:


    再说说 WebView,aardio 里可以非常方便的嵌入很多浏览器组件,系统自带的 WebBrowser 、WebView 控件、 以及 WebView2 、WebKit 、Electron 、CEF3 、HTMLayout 、Sciter...... 甚至可以直接调用系统安装的 Chrome 、Chromium Edge 等浏览器写软件界面。而且在网页中调用本地接口、以及 aardio 与浏览器的交互极其方便。

    具体说到 WebView2,微软新出的 Edge(Chromium) 浏览器组件,性能强悍,支持 WIN7,WIN10,WIN 11,而且 WIN 11 已经自带。在 aardio 里调用 WebView2 会自动检测系统是否安装此组件,没有安装会自动安装,这个组件虽然挺大(安装包 95MB),但是下载安装速度极快,分分钟能搞定。比起 Electron 体验好大多。

    WebView2 有一个优势就是所有使用 WebView2 的程序可以共用一个系统安装的组件,所以可以生成体积非常小的 EXE 。

    下面是 aardio 自带的例子:


    WebView2 的接口真的非常简洁,在网页中就可以非常方便的调用本地函数,比起 Electron 蛋痛的多进程交互省事太多了。
    timpaik
    timpaik
    Aug 11, 2021 via Android❤️1
    17
    aardio 好写小程序,挺适合你这个需求。如果要更深入一点,建议使用 tauri
    timpaik
    timpaik
    Aug 11, 2021 via Android
    18
    另外,tauri 和 aardio 的 webvt 都支持 webview2 ( chromium 内核
    Mithril
    Mithril
    Aug 11, 2021
    19
    还能有啥比 C#+WinForm 拖拖拖更快么。。。
    都是 Windows 10 的话自带.NET Framework,build 一下复制过去就完了。
    lusi1990
    lusi1990
    Aug 11, 2021
    20
    以前用 delphi 5/7/2010 , 上手简单
    C# 也有一套类似的
    risky
    risky
    Aug 11, 2021
    21
    electron
    timpaik
    timpaik
    Aug 11, 2021 via Android
    22
    @Mithril 个人觉得 aardio 拖拽舒服一点,主要是全部是 win32api,不需要任何运行库
    ajan
    ajan
    Sep 6, 2022
    23
    点赞 aardio
    xiaoke0718
    xiaoke0718
    Nov 26, 2022
    24
    c 语言
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4137 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 06:06 · PVG 14:06 · LAX 22:06 · JFK 01:06
    ♥ Do have faith in what you're doing.