源代码:https://github.com/soui4js/soui4js

soui4js是soui4+quickjs的结合体。

soui4是一套c++ directui客户端开发框架,soui4js则将soui4的开发语言从C++迁移到了js。

可能有人要问:为什么要使用js来开发?

使用js开发最大的优势就是开发快速,代码写下来就可以运行,测试,同时更方便热更新。

下面先来看一下源代码的代码结构:

下面先介绍一下这几个目录的功能。

bin: 程序运行目录,包括依赖库的dll。

depends: 本项目依赖的两个库(soui4, quickjs)的.h及.lib, .a

doc: 文档目录,目前还只有一个截图

node_modules/@types : 提供vscode编写soui4js的js代码时支持api提示使用的ts文件。包含soui4导出到js空间的所有API的定义。

qjsbind :一个将soui4类型导出到js的绑定支持库,编译输出为一个静态库。

soui4js-host:这是编译生成使用soui4及soui4js的宿主exe的vs工程目录。

soui4js:导出soui4接口到quickjs的代码。要看在soui4js里可以使用哪些api, 除了可以从node_modules/@types查看外,如何实现及使用也可以查看这个工程代码。

utils:一个提供辅助工具api的VS工程,编译后生成一个utils.dll,它是一个js模块,可以在js代码中使用import * as utils from "utils.dll"; 来使用。

wizard: 这是soui4js是一个向导程序,使用xml+js袜,需要使用bin目录下的soui4js-host.exe来运行。参见run_wizard.bat

run_host.bat :执行这个bat会启动bin/soui4js-host.exe, 加载bin/main.js,启动一个js小程序下载运行平台。效果如下图:

run_wizard.bat : 执行这个bat会启动bin/soui4js-host.exe, 加载wizard/main.js,启动一个soui4js的新建工程向导。效果如下:

在项目路径中指定一个路径(为空的时候会自动创建),点击“创建项目”按钮,程序会自动在指定路径中创建一个soui4js的工程框架。

如果您安装有vscode,则会自动使用vscode来打开该工程。您可以在vscode里编辑并运行代码。(代码编辑,调试见下篇)

认识soui4js(第1篇)的更多相关文章

  1. TGL站长关于常见问题的回复

    问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不 ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  4. [ 高并发]Java高并发编程系列第二篇--线程同步

    高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求, ...

  5. [高并发]Java高并发编程系列开山篇--线程实现

    Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发. 引用 多线程比多任务更加有挑战.多线程是在同一个程序内部并行执行,因此会对相 ...

  6. 操作系统篇-调用门与特权级(CPL、DPL和RPL)

    || 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言 在前两篇文章(<操作系统篇-浅谈实模式与保护模式>和<操作系统篇-分段机制与GDT|LDT>)中,我们提到 ...

  7. 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇

    什么是服务? 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性. 服务是一个单例对象,在每个应用中只会被实例化一次(被$injector实例化) ...

  8. javascript动画系列第三篇——碰撞检测

    前面的话 前面分别介绍了拖拽模拟和磁性吸附,当可视区域内存在多个可拖拽元素,就出现碰撞检测的问题,这也是javascript动画的一个经典问题.本篇将详细介绍碰撞检测 原理介绍 碰撞检测的方法有很多, ...

  9. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  10. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

随机推荐

  1. 1000+节点、200+集群,Slack如何利用Karpenter降本增效?

    原文首发于云妙算 Slack 是一款 AI 工作管理和协作平台.随着业务需求的增长,Slack 对其内部计算编排平台进行了重大改造,以增强可扩展性.提高效率并降低成本.该内部平台的代号为"B ...

  2. etcdv3与etcdv2特性比较

    1 客户端通信方式 etcdv3的客户端使用gRPC与server进行通信,通信的消息协议使用protobuf进行约定,代替了v2版本的HTTP-json格式,使用二进制替代文本,更加节省空间. 同时 ...

  3. element-ui resetFields 无效的问题

    1.问题 触发bug的条件是先打开,编辑进行赋值,后打开新增 先点开编辑 再打开新增 这个时候你会发现刚刚赋值过的数据还遗留在表单里面 即使在打开  dialog  的时候执行了重置也没有效果 res ...

  4. 链路追踪之Jaeger

    官方地址:https://www.jaegertracing.io/ [安装] 官方提供了两个安装方式, 1. 基于二进制(https://www.jaegertracing.io/download/ ...

  5. MySQL8.0安装与使用

    Windows: 1.下载:https://dev.mysql.com/downloads/mysql/ 推荐使用镜像:http://mirrors.sohu.com/mysql/MySQL-8.0/ ...

  6. 理解Flink之二Window与Watermark

    Flnk作为流式计算平台,他能对源源不断发送过来的数据进行处理. 对于数据流的处理方式,可以是来一条处理一条(pipeline的方式),还可以获取一些数据然后统一处理. 对于数据流如何描述一堆数据呢? ...

  7. 移动端NES网页模拟器(2)

    前言 前面的章节已经封装了一个NES的虚拟按钮,这个章节来封装他的方向键. 在一些NES网页网页模拟器中,方向键要么使用按钮模式,要么使用摇杆模式,各有不足.例如按钮模式无法滑动,用户点了半天才知道点 ...

  8. .NET周刊【12月第1期 2024-12-01】

    我在.NET Conf China 2024 等你! .NET Conf China 2024 是一场面向开发人员的社区盛会,旨在庆祝 .NET 9 的发布,并回顾过去一年 .NET 在中国的发展成就 ...

  9. IE低版本cors跨域请求

    标签:js 坑位 最近接到一个活动需求,但是服务端接口全是跨域的,由于js同源策略,ajax请求是不允许跨域请求的,比较流行的解决方法是jsonp或者cors,但当服务端是走cors的时候,发现IE1 ...

  10. Vue-Router 面试题 (2023-09-13更新)

    路由导航守卫 和 Vue 实例生成周期钩子函数的执行顺序? 路由导航守卫 都是在 Vue 实例生命周期钩子函数 之前执行的 Vue-Router 有哪几种导航钩子? 1. 全局守卫 全局前置守卫:be ...