V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wildmelon
V2EX  ›  问与答

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

  •  
  •   wildmelon · 2021-08-10 21:58:12 +08:00 · 4103 次点击
    这是一个创建于 961 天前的主题,其中的信息可能已经有所发展或是发生改变。
    标题借用自: https://www.zhihu.com/question/453979660

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

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

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

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

    普通人用用的话,python 开发比较省事,可以用 qt for python+qwebview+pyinstaller 打包单个 exe,启动慢点。
    我觉得没啥问题,看上去是单个 exe 就行,或者做个安装包,用 fbs 或者 pynsist 。
    yitingbai
        3
    yitingbai  
       2021-08-10 22:23:01 +08:00   ❤️ 2
    我看了你这 4 点描述, 完美契合 易语言 的使用场景, 虽然很多人道貌岸然的程序员看不起这个语言
    EKkoGG
        4
    EKkoGG  
       2021-08-10 22:23:14 +08:00
    其实你已经有答案啦,不需要跨平台,永远是 C#最方便
    wzzzx
        5
    wzzzx  
       2021-08-10 23:01:04 +08:00
    1. Qt 的话可以使用 QML,开发效率杠杠的。但是 C#的开发效率一定也不低
    2. webView 的话,QML 可以搞定
    3. 运行环境的话,Qt 需要把整个东西打包带走。体积还算蛮大的。但是 C#的话,小巧宜人。打包的问题我觉得倒不需要考虑,脚本写完万年不改的东西
    4. 不需要跨平台,在 Windows 首选 C#
    icy37785
        6
    icy37785  
       2021-08-10 23:18:13 +08:00 via iPhone
    感觉你的需求很适合用易语言,但是我自己没用过也不那么确定,c#应该也挺合适的
    XhstormR02
        7
    XhstormR02  
       2021-08-10 23:19:51 +08:00 via Android
    简单小巧的 纯 C GUI,可以从这开始看 https://github.com/XhstormR/GetBilibili-C/blob/master/src/main.c#L164
    mxT52CRuqR6o5
        8
    mxT52CRuqR6o5  
       2021-08-10 23:27:48 +08:00 via Android
    我记得易语言自带的 webview 好像是 ie 吧,除了这点其他好像都很符合需求
    我能想到的就是 c#和易语言了
    tianxia
        9
    tianxia  
       2021-08-10 23:31:58 +08:00 via Android
    aardio
    WildCat
        10
    WildCat  
       2021-08-10 23:34:48 +08:00
    http://tauri.studio
    levelworm
        11
    levelworm  
       2021-08-10 23:35:06 +08:00 via Android
    c#或者熟悉 c++的话上 qt 。qt 其实开发速度还成,最近写了个地图编辑器的雏形,习惯了基本的概念纠结的还挺快的。
    wafm
        12
    wafm  
       2021-08-10 23:43:50 +08:00
    易语言
    agagega
        13
    agagega  
       2021-08-10 23:52:21 +08:00 via iPhone
    要是 Windows/Linux 有类似 Mac Catalyst 的技术就好了,安卓 App 改改重新在桌面上编译一下就适配。
    secondwtq
        14
    secondwtq  
       2021-08-11 01:03:01 +08:00
    说个冷门的,Pascal 一系,就是 Delphi/VCL, Free Pascal/Lazarus 之类的
    很久之前用过 Delphi 7,感觉还不错,现在 Free Pascal 做跨平台应该也不差 ... 吧 ...
    kwanzaa
        15
    kwanzaa  
       2021-08-11 01:36:18 +08:00
    Flutter
    g00001
        16
    g00001  
       2021-08-11 02:24:26 +08:00
    如果原来就会批处理想做图形界面,或者是为了方便的嵌入 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
        17
    timpaik  
       2021-08-11 02:49:02 +08:00 via Android   ❤️ 1
    aardio 好写小程序,挺适合你这个需求。如果要更深入一点,建议使用 tauri
    timpaik
        18
    timpaik  
       2021-08-11 02:50:02 +08:00 via Android
    另外,tauri 和 aardio 的 webvt 都支持 webview2 ( chromium 内核
    Mithril
        19
    Mithril  
       2021-08-11 09:24:54 +08:00
    还能有啥比 C#+WinForm 拖拖拖更快么。。。
    都是 Windows 10 的话自带.NET Framework,build 一下复制过去就完了。
    lusi1990
        20
    lusi1990  
       2021-08-11 11:03:59 +08:00
    以前用 delphi 5/7/2010 , 上手简单
    C# 也有一套类似的
    risky
        21
    risky  
       2021-08-11 13:06:12 +08:00
    electron
    timpaik
        22
    timpaik  
       2021-08-11 20:49:50 +08:00 via Android
    @Mithril 个人觉得 aardio 拖拽舒服一点,主要是全部是 win32api,不需要任何运行库
    ajan
        23
    ajan  
       2022-09-06 13:43:08 +08:00
    点赞 aardio
    xiaoke0718
        24
    xiaoke0718  
       2022-11-26 19:31:03 +08:00
    c 语言
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1048 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:15 · PVG 03:15 · LAX 12:15 · JFK 15:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.