• 请不要在回答技术问题时复制粘贴 AI 生成的内容
gaoyadianta
V2EX  ›  程序员

windows 桌面应用开发技术选择, C#/Qt/C++/?

  •  
  •   gaoyadianta · Apr 12, 2018 · 28017 views
    This topic created in 3138 days ago, the information mentioned may be changed or developed.

    最近需要开发个比较简单的 windows 桌面应用程序,之前是做嵌入式开发的对 c 比较熟悉,其他语言都不是很了解(包括 c++)。 麻烦大家推荐下用哪种技术开发比较合适呢?主要考虑上手出活要快一些,学了相关技术之后将来能在别的地方用的上就更好 不仅限于上面提到的,觉得好的都帮忙推荐下吧

    另外目前需要做的就是个配置用的工具软件,会用到串口,去和硬件设备通信

    Supplement 1  ·  Apr 13, 2018
    总结了下各位的建议,按照大家建议的频次来排序吧(意识流,没仔细数):
    C#+wpf/winform/CEF
    Qt
    pyqt
    delphi
    html+JS
    Lazarus
    java 9 with jlink / electron
    avaloniaUI
    aardio
    LabVIEW

    也供大家参考吧,我准备用 C#+winform 先搞一下
    Supplement 2  ·  Apr 13, 2018
    易语言
    go
    87 replies  •  2021-08-11 01:50:22 +08:00
    gaoyadianta
    gaoyadianta
    OP
    Apr 12, 2018
    1
    请大家帮帮忙,或者推荐下哪个节点比较合适问这个问题
    Akkariin
    Akkariin
    Apr 12, 2018
    2
    c# +winform
    am241
    am241
    Apr 12, 2018 via Android
    3
    c#,省事
    gaoyadianta
    gaoyadianta
    OP
    Apr 12, 2018
    4
    @Akkariin
    @am241
    二位意见一致,看来 C#挺不错的,谢谢
    gaoyadianta
    gaoyadianta
    OP
    Apr 12, 2018
    5
    @Akkariin
    @am241 有没有推荐的教程之类的
    plqws
    plqws
    Apr 12, 2018
    6
    @gaoyadianta 微软官方的 MSDN 是最好的教程
    Droi
    Droi
    Apr 12, 2018
    7
    也可以试试 QT,程序也方便做到开发板里。看自带的文档就够用了。
    https://download.qt.io/archive/qt/
    jasonyang9
    jasonyang9
    Apr 12, 2018
    8
    在下觉得这块已经凉了。。。
    wackyjazz1
    wackyjazz1
    Apr 12, 2018
    9
    C# + winform,要畫面好看一點再配個 DevExpress
    GGYB
    GGYB
    Apr 12, 2018
    10
    c# + wpf 吧。mvvm 的思想,前端也能复用。
    shijingshijing
    shijingshijing
    Apr 12, 2018 via iPhone❤️1
    11
    准备深入而且本身技能树是走嵌入式的话推荐 Qt,以后下位机,触控屏都可以接着用 Qt,还自带跨平台属性加成。就是 C++要求高,后续维护要找个水平好的才能接上手。

    如果不准备深入或者只是做个简单的界面,那果断 c#+winform,拖控件不要太爽,而且以后找新人接受也行。
    MinQ
    MinQ
    Apr 12, 2018 via Android
    12
    C#+WPF/Winform 或者 pyqt 吧,C++写 QT 没两把刷子 hold 不住的
    doubleflower
    doubleflower
    Apr 12, 2018
    13
    HTML + JS,出活快,不过上手比 C#慢

    C#没公司用,学精了也找不到工作的,而前端技术好找
    sgissb1
    sgissb1
    Apr 12, 2018
    14
    你提到的所有语言都可以。

    但是易语言更简单,主要是招人方面都会比 c 类语言好弄得多。
    cdfmr
    cdfmr
    Apr 12, 2018
    15
    会 Pascal 的话,其实 Lazarus 很不错。
    fgodt
    fgodt
    Apr 12, 2018
    16
    wpf c# 最轻松的
    8023
    8023
    Apr 12, 2018 via Android
    17
    qt,相当顺手,也方便后期移植。
    若确定将来不打算运行在除 win 的平台,c# WinForm 也可以。
    WildCat
    WildCat
    Apr 12, 2018 via iPhone
    18
    java 9 with jlink / electron
    visonme
    visonme
    Apr 12, 2018
    19
    window 下我还是推荐 C#,用 winform 还是 wpf 看要做的东西对界面的要求有多高了。
    如果熟悉 QT 也不错,用 QML 做界面比用 widget 好很多了
    gaoyadianta
    gaoyadianta
    OP
    Apr 12, 2018
    20
    谢谢大家的回复,看来最简便的方式还是 C#
    我本身做嵌入式的,Qt 也是可选项
    yejinmo
    yejinmo
    Apr 12, 2018
    21
    必然 C# 啊
    gaoyadianta
    gaoyadianta
    OP
    Apr 12, 2018
    22
    @visonme winform 和 wpf 哪个复杂些,对界面要求不高
    fengyj
    fengyj
    Apr 12, 2018
    23
    首选 C#+winFrom,然后就是 C++和 Qt 搭配啊。
    XinLake
    XinLake
    Apr 12, 2018
    24
    现在的 windows 桌面主要是 NET。QT wxWidget GTK 那些也行,优势是跨平台不依赖操作系统组件,不过要玩得转要点内功,刚接触就算了。

    NET 微软推荐 C#,WPF 是比较现代,WinForm 很早就有了。

    底层硬件通讯方面,你需要用创建一个 VC++ Win32 (支持 64 位) DLL 工程来支持串口通讯功能,代码用 C 语言开发。C# 程序可以调用 DLL 来完成从 UI 到底层硬件通讯得任务,但是其中会有很多细节,微软官方文档一般都能找到有帮助得信息。
    shijingshijing
    shijingshijing
    Apr 12, 2018
    25
    @gaoyadianta Winform 简单,都是标准预制件,做做槛控界面足够了。WPF 适合非标准界面,各种花里胡哨的界面只能选择 WPF。
    shijingshijing
    shijingshijing
    Apr 12, 2018❤️1
    26
    @XinLake 不需要整 dll 这么复杂, .Net framework 从 2.0 就自带了串口 SerialPort 类,命名空间 System.IO.Ports,配合 MSDN 分分钟上手,微软的全家桶就是这么爽。
    gaoyadianta
    gaoyadianta
    OP
    Apr 12, 2018
    27
    @shijingshijing 好的,基本清楚了
    @XinLake C#做串口通信这么复杂呢啊
    happinessnch
    happinessnch
    Apr 12, 2018
    28
    C# + CEF
    gaoyadianta
    gaoyadianta
    OP
    Apr 12, 2018
    29
    @happinessnch CEF 是什么
    TaylorJack123
    TaylorJack123
    Apr 12, 2018 via Android
    30
    做过嵌入式开发的强烈推荐 QT,参照官方的例程,一天就能搞定一个简单的 App😁
    ioth
    ioth
    Apr 12, 2018
    31
    delphi 7
    vb6
    XinLake
    XinLake
    Apr 12, 2018 via Android
    32
    @shijingshijing
    @gaoyadianta
    我把 .net 的串口给忘了,.net 也行还方便。
    owenliang
    owenliang
    Apr 12, 2018
    33
    QT 拖一拖吧
    youthdou
    youthdou
    Apr 12, 2018
    34
    qt 适合跨平台 尤其对嵌入式。
    ysc3839
    ysc3839
    Apr 12, 2018 via Android
    35
    @sgissb1 强烈不推荐易语言。
    首先是要收费,500 起步的价格。
    其次是无法版本管理,代码是私有二进制格式的。
    再者是本身的功能不足,比如不支持 Unicode。
    ysc3839
    ysc3839
    Apr 12, 2018 via Android
    36
    @gaoyadianta Chromium Embedded Framework
    yazoox
    yazoox
    Apr 12, 2018 via Android
    37
    @MinQ 不是吧,qt 有这么可怕啊……
    MinQ
    MinQ
    Apr 12, 2018 via Android
    38
    @yazoox 不是可怕,而是 C++下面的 QT 不够简洁所以略麻烦,再加上 C++不是纯面向对象的,新手直接干有可能忘了自己回收内存 /搞出了野指针之类的,导致遇到奇奇怪怪的问题
    MinQ
    MinQ
    Apr 12, 2018 via Android
    39
    @ysc3839 这玩意跑起来就跟开了个 chrome 一样,眼看着 CPU 占用率和内存占用哗哗往上涨啊
    justinwu
    justinwu
    Apr 12, 2018 via iPhone
    40
    C# + winform,不二之选。

    曾经嵌入式多年的我,就是用这开发的串口工具,同事都说好用。

    OO 基础以及基本的 GUI 套路,都是通用的。
    PythonAnswer
    PythonAnswer
    Apr 12, 2018 via Android
    42
    喜欢干小活用 python 然后随便加个 ui
    ftexplore
    ftexplore
    Apr 12, 2018
    43
    现在做新的桌面软件基本都是,用 HTML 做 UI,例如微软的 vscode
    alqaz
    alqaz
    Apr 12, 2018
    44
    Qt
    omph
    omph
    Apr 12, 2018
    45
    windows 当然用 winform,微软傻瓜化是出名的
    linux 当然用 qt
    imdong
    imdong
    Apr 12, 2018
    46
    什么都不要说了,除非楼主自己业余小打小闹弄着玩可以试下搞一下易语言。
    否则任何条件下,都不建议使用易语言。

    当下 C#应该是比较主流的吧。
    jsq2627
    jsq2627
    PRO
    Apr 12, 2018❤️4
    47
    简单小工具:c# + winform
    界面复杂:c# + wpf
    只考虑 win10 平台:c# + uwp
    跨平台:html/js/electron
    跨平台大型 GUI 应用:qt
    baixiangcpp
    baixiangcpp
    Apr 12, 2018
    48
    熟练使用 C++的情况下用 qt
    bookit
    bookit
    Apr 12, 2018
    49
    这块早就凉了,

    所以最佳方案是下载一串口配置的开源代码改改就行
    defphilip
    defphilip
    Apr 12, 2018
    50
    Qt
    aminic
    aminic
    Apr 12, 2018 via Android
    51
    好上手体验舒服的也就 c# winform wpf
    iwtbauh
    iwtbauh
    Apr 12, 2018 via Android
    52
    其实,GTK+ 也可以在 Windows 上跑
    fancymax
    fancymax
    Apr 12, 2018 via iPhone
    53
    @cdfmr 比 delphi 差远了啊
    Linko
    Linko
    Apr 12, 2018
    54
    C# + winform
    Wicked
    Wicked
    Apr 12, 2018 via iPhone
    55
    推荐 Qt,跨平台,丰富的文档和教程,完备的功能支持
    XinLake
    XinLake
    Apr 12, 2018 via Android
    56
    Qt、GTK 做单纯的 GUI 跨平台还行,像网站 APP 那样几乎就是个移动设备上的前端,只要 GUI 就好没啥功能,那样还行。

    要是涉及到 APP 能力,如视频解码、3D 图形、图像处理、机器视觉、本地 AI 计算,这时 APP 可能需要使用硬件计算能力,那还是操作系统本身的 APP 框架好点,和系统其他组件结合得更好,问题少,效率更高。
    cchange
    cchange
    Apr 12, 2018
    57
    WPF 看起来真心不错 不知道是否有开源的实现,不太喜欢网页技术……
    MinQ
    MinQ
    Apr 13, 2018 via Android
    58
    @cchange avaloniaUI,开源跨平台
    g00001
    g00001
    Apr 13, 2018❤️2
    59
    用 aardio 简单,小、轻、快、调用 C 语言接口方便。


    像这种漂亮的界面,用 aardio 分分钟拖出来,生成的 EXE 才 1MB 多一点,用其他开发工具要搞到什么时候。

    至于串口,看 aardio 写的串口调试助手

    就是几句代码的事。
    ysc3839
    ysc3839
    Apr 13, 2018
    60
    @MinQ 是的,但是仍然有很多软件使用。
    MinQ
    MinQ
    Apr 13, 2018 via Android
    61
    @ysc3839 我自己就是受害者之一啊,以前写过一个触摸大屏软件,要处理地图信息,最后选了 WPF+CEF,在那个破工控机上跑的,经常怀疑人生
    KaoN
    KaoN
    Apr 13, 2018 via Android
    62
    @XinLake Qt 做 3d 应该完全没问题
    hotsymbol
    hotsymbol
    Apr 13, 2018
    63
    用 MFC+C#吧 坑不死你
    weizhen199
    weizhen199
    Apr 13, 2018
    64
    这种东西还是 Qt 比较好。
    winform 有点过期了。
    wpf,破机器会卡
    ibugeek
    ibugeek
    Apr 13, 2018
    65
    C#或 Qt,上手快得不行。
    mohoumk2
    mohoumk2
    Apr 13, 2018 via Android
    66
    c#
    nicevar
    nicevar
    Apr 13, 2018
    67
    熟悉 C++的用 Qt 最快最省事了,以后要用在其他平台上也方便,现在一般的工具我都用 Qt 写
    skadi
    skadi
    Apr 13, 2018
    68
    qt
    lvsemi1
    lvsemi1
    Apr 13, 2018 via Android
    69
    我说 unity3d 会不会被打
    hws8033856
    hws8033856
    Apr 13, 2018
    70
    上面说 C#+CEF 以及 WPF 的明显都不适合楼主的技术栈和快速出活的需求,因为这两者都要求用标记语言(html;xaml)做前端
    macha
    macha
    Apr 13, 2018
    71
    我感觉 C#的 winform 比较合适。界面分分钟拖出来。追求短平快 C++首先被排除。
    thuai
    thuai
    Apr 13, 2018
    72
    Qt 如果会 Python 的话,就 PyQt。快的一逼
    timsensor
    timsensor
    Apr 13, 2018
    73
    MS .net 部署可能会遇到问题。
    我推荐 QT,坑小
    yunji3344
    yunji3344
    Apr 13, 2018
    74
    怎么说人说 delphi
    liuminghao233
    liuminghao233
    Apr 13, 2018 via iPhone
    75
    不跨平台就 wpf
    要写一套放 mac win linux 就 qt

    其他不考虑
    MinQ
    MinQ
    Apr 13, 2018 via Android
    76
    @liuminghao233 其实现在 WPF 也能跨平台了…… https://github.com/AvaloniaUI/Avalonia
    mercurygear
    mercurygear
    Apr 13, 2018
    77
    WTL
    tamlok
    tamlok
    Apr 13, 2018 via Android
    78
    @MinQ qt 有 qobject 管理,一般不会有野指针
    Narcissu5
    Narcissu5
    Apr 13, 2018
    79
    WPF 和 WinForm 的最大不同在于 WPF 是使用显卡渲染的,WinForm 用的是系统控件。WPF 本来就是针对现代机器设计的,配置不好会卡是肯定的,反过来说,配置好的机器不用 WPF 就是浪费
    MinQ
    MinQ
    Apr 13, 2018 via Android
    80
    @tamlok 我指的是你自己写功能代码的时候如果没踩过坑的话容易翻车
    g00001
    g00001
    Apr 13, 2018
    81
    C#跟 Java 一样属于重型开发工具,如果是专业玩 C#准备投入三五年的全职时间可以玩,快速开发还是算了吧,C#写的软件需要.Net 运行库部署麻烦,另外 C#写的软件用反编译工具可以还原出全部的 C#源代码,连工程文件都可以还原出来。当然,如果不介意别人分享你的源代码,就没什么问题了。

    electron 有同样的问题,用 js 写的软件很难真正保护源代码.而且 electron 不支持 win7 sp1 以下系统,另外一个是发行体积大:

    MinQ
    MinQ
    Apr 13, 2018
    82
    @g00001 核心代码封装成 C++的 DLL 或者加混淆,Java 也有同样的毛病,安卓的 APK 天天被人逆向来逆向去的,还不是一样是混淆或者塞 JNI 里
    Narwhal
    Narwhal
    Apr 13, 2018
    83
    这个帖子里没人讨论 labview 么
    gaoyadianta
    gaoyadianta
    OP
    Apr 13, 2018
    84
    @Narwhal 哈哈,其实我之前就是玩 labview 的,不过觉得那东西安装啥的还是麻烦了,以后想换一个
    Clarencep
    Clarencep
    Apr 13, 2018
    85
    没有人说 go 语言吗?建议试用下 go,搭配 lxn/walk 库,C 语言用户肯定都喜欢 go 的。
    cchange
    cchange
    Apr 14, 2018 via iPhone
    86
    @MinQ 多谢 希望这个库能一直发展下去
    aaniao002
    aaniao002
    Aug 11, 2021 via Android
    87
    要快的话走 qt 线路,要定制要大众要跨平台走 html 线路,win 全家桶不建议,啊三味太浓。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1892 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 136ms · UTC 08:33 · PVG 16:33 · LAX 00:33 · JFK 03:33
    ♥ Do have faith in what you're doing.