当前位置: 首页 > news >正文

微信小程序,微信小游戏调用WebAssembly

微信小程序和小游戏本质上是浏览器,小程序和小游戏的区别是游戏里面只有主进程,所以两者调用wasm会有同步异步之分。

微信官方文档资料太少,没有具体如何调用,但是浏览器内核都是一样的,微信只不过把WebAssembly封装成了WXWebAssembly,支持了压缩,思路都是一样的。

开维游戏引擎,内核c++编写,v8引擎封装游戏函数,Assembly实现htm跨平台高效运行。编译wasm需要支持导出微信小游戏,期间遇到的问题,解决时网上资料很少,我们补充一下,也建议微信小游戏官方文档能补充详细的实例和文档说明。

1. wasm编译

wasm的编译,是把c++,或rust等语言编译成汇编语言,编译优化选项慎用,特别是优化编译,因为编译后有javascript脚本语言作为胶水代码,即解析调用wasm的这部分代码,如果优化太狠,生成的js也会跟着优化,甚至函数名称都会改变。微信中的浏览器会因为函数名对不上导致加载失败。原因是胶水代码调用wasm没问题,他们是可以对上的,emcc编译的时候已经做了对应,但是微信中的浏览器不知道,他是按照默认的函数名称调用的,所以就会出问题。

引擎移植遇到最多的问题之一就是链接函数找不到,无论是杀毒引擎还是游戏引擎等,都会遇到符号表找不到,问题本质上是coff文件或者其他中间文件,要根据符号表链接,编译选项不同,符号表也不一样,即便编译选项一样,关键字不同,也会导致符号名称不同,例如会加@后面的数值也不同,所以理解这个原因后查问题就很容找到,首先要排除函数名称对应不上的问题,可以用ida反编译wasm看一下就很清楚了。

2. 微信小游戏内存

微信小游戏内存分页有限制,需要做限定。另外他对浏览器做了修改,对堆栈的管理等做了限制。有时候发现正常的浏览器可以,微信小游戏不行,是因为递归或者嵌套调用过多导致崩溃,因为微信为了保证用户在一个小沙盒内,对各种调用做了限定,包括包大小的限定等。

3. 函数调用

微信小游戏的函数不完全支持时,需要自己补函数,原理类似coff文件中,链接到自己的一个函数,把函数地址回填到相应的内存地址中,hook,加壳,jmp替换函数,内存补丁都是这个原理。

4. 微信小游戏中wasm适用范围

一般情况浏览器支持的功能,微信小游戏都会支持,例如对类的支持,对文件系统的支持。因为微信小游戏浏览器也不会改太多,例如对胶水代码的加载调用,除了封装WXWebAssembly外,基本没太多变化。

http://www.jsqmd.com/news/747180/

相关文章:

  • 微服务选型中Nacos和Consul健康检查有什么不同?
  • 【参数辨识】经典Prandtl–Ishlinskii(PI)迟滞模型及其PSO算法参数辨识附Matlab代码
  • 从CPU市场到AI算力格局:一场关于技术路线、商业逻辑与生态锁定的深度梳理
  • 终极指南:3步快速掌握Retrieval-based-Voice-Conversion-WebUI变声神器
  • 对比直接使用原厂 API Taotoken 在路由容灾上的体验差异
  • 【Uformer论文阅读|CVPR 2022】:通用U型Transformer架构,重新定义图像修复任务
  • 从‘校区’到‘Python’:聊聊聊天机器人里那些意想不到的意图识别‘坑’
  • murata村田SCH1633-D01陀螺仪加速计传感器原厂一级代理商分销经销商
  • 论文AIGC检测多少才合格?怎么降低论文的aigc率?
  • 图片去背景抠图有哪些工具推荐?2026年最实用的抠图工具对比指南
  • 大语言模型知识同质性解析与工业级优化方案
  • 全国大学生电子设计竞赛】从零基础到国奖的硬核通关指南(附备赛清单与踩坑实录)
  • 如何用qmcdump解锁QQ音乐加密文件:从原理到实战的完整指南
  • 百度网盘高速下载终极指南:免费开源工具轻松突破限速
  • 将 Hermes Agent 的提供商指向 Taotoken 实现统一调用
  • 终极指南:如何在5分钟内掌握MapleStory WZ文件编辑与地图制作
  • JDK版本兼容性断裂、SPI机制失效、SSL国密套件加载失败,Java国产化适配三大“静默崩溃”场景全解析,
  • 终极指南:5分钟掌握BG3模组管理,彻底告别游戏崩溃烦恼
  • 2026 AI 算力芯片全解析:推理时代的格局重构与国产突围
  • 2026年紫光国微数字IC设计笔试题带答案
  • Spring Boot3入门介绍----什么是IOC?
  • Claude突发封号风暴:110人团队一夜“清零”,9秒直接停摆!
  • 何帆律师:15年专注保险拒赔 只为被保险人讨回应得理赔款 - 测评者007
  • [简化版 GAMES 101] 计算机图形学 07:图形学投影完全推导
  • Taotoken在教育培训场景中为不同难度习题提供适配的模型解答
  • 别再只用Loop了!Blender/3ds Max网格细分实战:Catmull-Clark与Loop算法效果对比与选择指南
  • Select to Think:蒸馏 token 排序能力,效果平均提升24%
  • **Claude Code Skills 最佳实践指南:10 个顶级技能,装上就删不掉!(附真实使用场景、好处与详细教程)**
  • 苹果手机怎么把照片抠图?2026年最全解决方案对比
  • 自改进代理的学习边界与安全防护策略