V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Angela2022
V2EX  ›  程序员

+++有啥 APP 开发框架既可以用 CSS/JS 开发 UI, 又可以用 C++/WIN32 API 等操控底层系统功能+++

  •  1
     
  •   Angela2022 · 195 天前 · 2400 次点击
    这是一个创建于 195 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有啥 APP 开发框架既可以用 CSS/JS 开发 UI 又可以用 C++/WIN32 API 等操控底层系统功能。

    目前试了 Electron , 很难操控钩子函数,文件系统等底层系统功能

    还试了 WPF 、winform, 感觉写 UI 比 CSS 、JS 等麻烦多了。

    请问有没有一个开发框架能 UI 和底层通吃的。

    谢谢
    30 条回复    2023-10-17 10:36:59 +08:00
    kkk9
        1
    kkk9  
       195 天前
    MAUI
    Chefback
        2
    Chefback  
       195 天前
    前端框架配合 wasm
    Jamy
        3
    Jamy  
       195 天前
    老古董 MFC/ATL 搭个 webview
    hez2010
        4
    hez2010  
       195 天前
    试试 Avalonia ( https://github.com/AvaloniaUI/Avalonia )?
    如果需要 WinUI 3 风格的话可以配合 FluentAvalonia ( https://github.com/amwx/FluentAvalonia) 使用。
    如果不想写 XAML 的话可以配合 Avalonia.Markup.Declarative ( https://github.com/AvaloniaUI/Avalonia.Markup.Declarative) 使用。
    yuyoung
        6
    yuyoung  
       195 天前
    wails
    jones2000
        7
    jones2000  
       195 天前
    CEF
    pengtdyd
        8
    pengtdyd  
       195 天前
    tauri
    auroraccc
        9
    auroraccc  
       195 天前
    tauri
    hronro
        10
    hronro  
       195 天前
    @Chefback 配合 WASM 纯属胡言乱语吧
    mightybruce
        11
    mightybruce  
       195 天前
    这个肯定是 QT 啊,QT stylesheet 支持 css.
    QWebView , 用 QT 不影响用 Win32 API , 其他 wasm 是不能直接和 win32 交互的。要通过 wasi
    tool2d
        12
    tool2d  
       195 天前
    Electron 可以的,我自己测试下来没问题,需要自己用 napi.h 写一套中间层调用 win32 api 。

    electron 是兼容 nodejs 的,要用 nodejs 的插件来开发。
    Moyyyyyyyyyyye
        13
    Moyyyyyyyyyyye  
       195 天前
    Electron 直接加 c++ addon 不就是了嘛,想怎么写都行
    tonystarkgz3
        14
    tonystarkgz3  
       195 天前
    推荐 wails https://wails.io/
    tinybug
        15
    tinybug  
       195 天前
    Electron + 命令行
    shanhuse
        17
    shanhuse  
       195 天前
    Electron+Node-API.(C++)
    Node-API (以前称为 N-API )是用于构建本地插件的 API 。它独立于底层的 JavaScript 运行时(例如 V8 ),并作为 Node.js 本身的一部分进行维护。这个 API 将在 Node.js 的各个版本中都保持应用程序二进制接口( ABI )的稳定性。它旨在使插件与底层的 JavaScript 引擎的变化隔离开来,并允许在后续的 Node.js 主要版本上无需重新编译即可运行为一个主要版本编译的模块。ABI 稳定性指南提供了更详细的解释。
    https://nodejs.org/api/n-api.html#node-api
    w07128597
        18
    w07128597  
       195 天前 via iPhone
    react for windows
    微软自己维护的
    c2const
        19
    c2const  
       195 天前
    都已经熟悉 js 和 Electron 了,那把系统层的代码写成 dll ,上层调用就行了吧 :)
    mightybruce
        20
    mightybruce  
       195 天前
    大公司像 spotify 使用的 C++ CEF (Chromium Embedded Framework) 来将 html css js 渲染为界面和逻辑
    可以参考这个
    https://github.com/paulocoutinhox/cef-sample
    mightybruce
        21
    mightybruce  
       195 天前
    网易开源了一个对 CEF 的封装的开发框架
    NIM Duilib
    https://github.com/netease-im/NIM_Duilib_Framework/tree/master
    Kirscheis
        22
    Kirscheis  
       195 天前
    多窗口行业应用一把梭那就 Qt ,简单的单页 app 可以试试 tauri 。
    beyondex
        23
    beyondex  
       195 天前
    blazor desktop 可以兼顾。
    blazor 可以写 html ,css ,逻辑用 c#写,调用 c 可以用 cppsharp 自动把 c api 翻译成 c# wrapper ,然后调就是了。
    ysc3839
        24
    ysc3839  
       195 天前 via Android
    Electron 的话写个 Node.js 模块就能实现了。
    实在不想走 Node.js 绕一圈的话,选一个语言 (如 C++) 搭配各类 WebView (如 CEF 或 Edge WebView2) 即可。
    encro
        25
    encro  
       195 天前
    @mightybruce

    就 qml 那货比起 mvvm 模式来还是差太多。。。。
    ashong
        26
    ashong  
       195 天前 via iPhone
    cef + js
    kirory
        27
    kirory  
       194 天前
    httplib + openurl localhost:xxxx
    minami
        28
    minami  
       194 天前
    sciter
    hupeng
        29
    hupeng  
       194 天前
    王者荣耀就是这么干的
    mainjzb
        30
    mainjzb  
       194 天前
    这个典型的 tauri 。。。rust 操作底层是和 C++唯二的选择
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3302 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:26 · PVG 19:26 · LAX 04:26 · JFK 07:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.