首页| 论坛| 消息

标题:基于C++的一套web框架
作者:samhuilong
日期:2022-08-31 23:45
内容:

模仿Qt风格,基于C++写了一套web框架,编译成webassembly在浏览器中运行。之前写过一套typescript版本,现在基于C++复写了一套,让C++程序员能够不用切换语言,就可以轻松的去编写复杂度较高的工业web应用。如果有需求,后续也会考虑再复写一套C#版本。
webassembly是很棒的技术,让web有了更多的可能。而且webassembly不只应用在前端,也可以应用在后台服务。

图1:停靠窗口示例展示
停靠窗口示例的C++代码


#1 [yanhuaw 09-01 08:14]

#2 [shawking 09-03 10:23]
WebAssembly现在能访问数据库了吗?
#3 回 shawking 的帖子 [samhuilong 09-03 11:34]
shawking:WebAssembly现在能访问数据库了吗? (2022-09-03 10:23)
你说的是IndexedDB吧?WebAssembly是不可以直接读取的,可以写一套C++版本的IndexedDB,用C++封装一层数据库接口,接口内部调用原生的js的操作,然后js把数据返回给C++层面。目前前端的开发还离不开js,因为其他语言的生态太差了,应该很难找到想要的C++版本的库,所以这个封装C++版本的工作可能需要自己完成。

我举个简单的例子来说明下,比如要在C++层面判断当前设备是否是触摸设备,wasm是没有权限直接访问的。
在C++层面提供如下的接口:
bool isTouchDevice();
函数内部调用原生js返回bool值:
bool isTouchDevice()
{
return (bool)EM_ASM_INT_V(return 'ontouchstart' in document.documentElement ? 1 : 0;);
}
假设把这类接口封装成一个库,那么就是C++版本的访问本地设备信息的库。
然后C++应用层调用这个库的接口即可获取设备信息。
#4 [shawking 09-05 18:15]
多谢,多谢!这么说,不能访问数据库是安全机制决定的。只能想别的办法。
#5 [圣域天子 09-06 11:24]
wasm中进行中文输入,有办法吗?

<< 1 2 >> (1/2)

回复 发表
主题 版块