认识soui4js(第1篇)
源代码: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篇)的更多相关文章
- TGL站长关于常见问题的回复
问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不 ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- [ 高并发]Java高并发编程系列第二篇--线程同步
高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求, ...
- [高并发]Java高并发编程系列开山篇--线程实现
Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发. 引用 多线程比多任务更加有挑战.多线程是在同一个程序内部并行执行,因此会对相 ...
- 操作系统篇-调用门与特权级(CPL、DPL和RPL)
|| 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言 在前两篇文章(<操作系统篇-浅谈实模式与保护模式>和<操作系统篇-分段机制与GDT|LDT>)中,我们提到 ...
- 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇
什么是服务? 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性. 服务是一个单例对象,在每个应用中只会被实例化一次(被$injector实例化) ...
- javascript动画系列第三篇——碰撞检测
前面的话 前面分别介绍了拖拽模拟和磁性吸附,当可视区域内存在多个可拖拽元素,就出现碰撞检测的问题,这也是javascript动画的一个经典问题.本篇将详细介绍碰撞检测 原理介绍 碰撞检测的方法有很多, ...
- 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...
- 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
随机推荐
- 敏捷开发:Scrum 中的 Product Backlog 介绍
Product Backlog 产品待办列表 在计划开发产品功能时,都希望产品功能上线后,用户能够喜欢并经常使用. 因此在开发产品新功能时,就要衡量哪些产品需求是对用户最有价值,这是最应该思考的问题. ...
- 浅析Flie类getAbsolutePath()方法
开发中,常常需要上传文件,并将文件存于远程服务器(如minio)或者本地,当存于本地时对存储路径的指定是常见的问题. 当然,你可以在本地写死静态资源路径,如"D:\static\fileUp ...
- Java网络爬虫的实现
记得在刚找工作时,隔壁的一位同学在面试时豪言壮语曾实现过网络爬虫,当时的景仰之情犹如滔滔江水连绵不绝.后来,在做图片搜索时,需要大量的测试图片,因此萌生了从Amazon中爬取图书封面图片的想法,从网上 ...
- Xdebug+Phpstorm本地调试
很久不用php进行开发, debug插件的安装与配置都忘完了, 看了下自己之前记录的一篇文章, 有点太乱了, 这里简约介绍下,方便后面快捷使用 XDebug下载地址: https://xdebug.o ...
- jquery加购物车功能
如下图所示: 点击加入购物车,由下到上出现此弹窗,点击close关闭弹窗. $(".addCar").on("click", function() { var ...
- python之在线书籍
人生苦短,我用python, 这里罗列一些可以查看python电子书的相关链接,平时没事多看看,一定会大有裨益!!! python3-cookbook[https://python3-cookbook ...
- 正也科技S2P 数字化推动医药信息传播多元化
在当今数字化迅猛发展的时代浪潮中,医药信息传播正经历着深刻而广泛的变革.这种变革犹如一场波澜壮阔的革命,席卷了医药领域的每一个角落,对医药行业的发展产生了深远且不可忽视的影响. 一.传播渠道的多元化拓 ...
- 销讯通CRM系统如何确保拜访数据的真实有效
销讯通CRM系统如何确保并检查拜访过程数据的真实性,是一个值得深入探讨的课题. 01 在信息化高度发达的今天,我们拥有GPS定位.AI人脸识别等先进技术,这些技术无疑为数据的真实有效性提供了强有力的保 ...
- mongo设置可选的唯一索引
对于一些可能为空但必须唯一的字段,mongo支持创建部分索引,使用 partialFilterExpression 字段. MongoDB version >= 3.2 下面以 unique_a ...
- 【Amadeus原创】域密码到期发送提醒邮件的超简单方法
1,AD服务器下载安装免费的卓豪AD管理工具 https://www.manageengine.cn/products/self-service-password/free-password-expi ...