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

2021-08-10 21:58:12 +08:00
 wildmelon
标题借用自: https://www.zhihu.com/question/453979660

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

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

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

结果是各种语言越搜越多... 目前来看 WPF 和 Qt 似乎比较合适?
4164 次点击
所在节点    问与答
24 条回复
supermoonie
2021-08-10 22:05:05 +08:00
只会 java 目前用的 jcef
nick0x01
2021-08-10 22:16:22 +08:00
qt 静态编译并不方便,还是 c#方便一点。

普通人用用的话,python 开发比较省事,可以用 qt for python+qwebview+pyinstaller 打包单个 exe,启动慢点。
我觉得没啥问题,看上去是单个 exe 就行,或者做个安装包,用 fbs 或者 pynsist 。
yitingbai
2021-08-10 22:23:01 +08:00
我看了你这 4 点描述, 完美契合 易语言 的使用场景, 虽然很多人道貌岸然的程序员看不起这个语言
EKkoGG
2021-08-10 22:23:14 +08:00
其实你已经有答案啦,不需要跨平台,永远是 C#最方便
wzzzx
2021-08-10 23:01:04 +08:00
1. Qt 的话可以使用 QML,开发效率杠杠的。但是 C#的开发效率一定也不低
2. webView 的话,QML 可以搞定
3. 运行环境的话,Qt 需要把整个东西打包带走。体积还算蛮大的。但是 C#的话,小巧宜人。打包的问题我觉得倒不需要考虑,脚本写完万年不改的东西
4. 不需要跨平台,在 Windows 首选 C#
icy37785
2021-08-10 23:18:13 +08:00
感觉你的需求很适合用易语言,但是我自己没用过也不那么确定,c#应该也挺合适的
XhstormR02
2021-08-10 23:19:51 +08:00
简单小巧的 纯 C GUI,可以从这开始看 https://github.com/XhstormR/GetBilibili-C/blob/master/src/main.c#L164
mxT52CRuqR6o5
2021-08-10 23:27:48 +08:00
我记得易语言自带的 webview 好像是 ie 吧,除了这点其他好像都很符合需求
我能想到的就是 c#和易语言了
tianxia
2021-08-10 23:31:58 +08:00
aardio
WildCat
2021-08-10 23:34:48 +08:00
http://tauri.studio
levelworm
2021-08-10 23:35:06 +08:00
c#或者熟悉 c++的话上 qt 。qt 其实开发速度还成,最近写了个地图编辑器的雏形,习惯了基本的概念纠结的还挺快的。
wafm
2021-08-10 23:43:50 +08:00
易语言
agagega
2021-08-10 23:52:21 +08:00
要是 Windows/Linux 有类似 Mac Catalyst 的技术就好了,安卓 App 改改重新在桌面上编译一下就适配。
secondwtq
2021-08-11 01:03:01 +08:00
说个冷门的,Pascal 一系,就是 Delphi/VCL, Free Pascal/Lazarus 之类的
很久之前用过 Delphi 7,感觉还不错,现在 Free Pascal 做跨平台应该也不差 ... 吧 ...
kwanzaa
2021-08-11 01:36:18 +08:00
Flutter
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
2021-08-11 02:49:02 +08:00
aardio 好写小程序,挺适合你这个需求。如果要更深入一点,建议使用 tauri
timpaik
2021-08-11 02:50:02 +08:00
另外,tauri 和 aardio 的 webvt 都支持 webview2 ( chromium 内核
Mithril
2021-08-11 09:24:54 +08:00
还能有啥比 C#+WinForm 拖拖拖更快么。。。
都是 Windows 10 的话自带.NET Framework,build 一下复制过去就完了。
lusi1990
2021-08-11 11:03:59 +08:00
以前用 delphi 5/7/2010 , 上手简单
C# 也有一套类似的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/794937

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX