源代码: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. 敏捷开发:Scrum 中的 Product Backlog 介绍

    Product Backlog 产品待办列表 在计划开发产品功能时,都希望产品功能上线后,用户能够喜欢并经常使用. 因此在开发产品新功能时,就要衡量哪些产品需求是对用户最有价值,这是最应该思考的问题. ...

  2. 浅析Flie类getAbsolutePath()方法

    开发中,常常需要上传文件,并将文件存于远程服务器(如minio)或者本地,当存于本地时对存储路径的指定是常见的问题. 当然,你可以在本地写死静态资源路径,如"D:\static\fileUp ...

  3. Java网络爬虫的实现

    记得在刚找工作时,隔壁的一位同学在面试时豪言壮语曾实现过网络爬虫,当时的景仰之情犹如滔滔江水连绵不绝.后来,在做图片搜索时,需要大量的测试图片,因此萌生了从Amazon中爬取图书封面图片的想法,从网上 ...

  4. Xdebug+Phpstorm本地调试

    很久不用php进行开发, debug插件的安装与配置都忘完了, 看了下自己之前记录的一篇文章, 有点太乱了, 这里简约介绍下,方便后面快捷使用 XDebug下载地址: https://xdebug.o ...

  5. jquery加购物车功能

    如下图所示: 点击加入购物车,由下到上出现此弹窗,点击close关闭弹窗. $(".addCar").on("click", function() { var ...

  6. python之在线书籍

    人生苦短,我用python, 这里罗列一些可以查看python电子书的相关链接,平时没事多看看,一定会大有裨益!!! python3-cookbook[https://python3-cookbook ...

  7. 正也科技S2P 数字化推动医药信息传播多元化

    在当今数字化迅猛发展的时代浪潮中,医药信息传播正经历着深刻而广泛的变革.这种变革犹如一场波澜壮阔的革命,席卷了医药领域的每一个角落,对医药行业的发展产生了深远且不可忽视的影响. 一.传播渠道的多元化拓 ...

  8. 销讯通CRM系统如何确保拜访数据的真实有效

    销讯通CRM系统如何确保并检查拜访过程数据的真实性,是一个值得深入探讨的课题. 01 在信息化高度发达的今天,我们拥有GPS定位.AI人脸识别等先进技术,这些技术无疑为数据的真实有效性提供了强有力的保 ...

  9. mongo设置可选的唯一索引

    对于一些可能为空但必须唯一的字段,mongo支持创建部分索引,使用 partialFilterExpression 字段. MongoDB version >= 3.2 下面以 unique_a ...

  10. 【Amadeus原创】域密码到期发送提醒邮件的超简单方法

    1,AD服务器下载安装免费的卓豪AD管理工具 https://www.manageengine.cn/products/self-service-password/free-password-expi ...