typescript如何调用自己编写的C++函数

在https://blog.csdn.net/Xeon_CC/article/details/139957190这篇文章已经直到,js文件以及对应的wasm文件如何生成了。
那么typescript怎样才能调用C++编写的函数呢?写法与js不同。

这是定义的C++函数

#include <cmath>
#include <vector>
#include <emscripten/emscripten.h>

extern "C" {
	EMSCRIPTEN_KEEPALIVE
	double getFloat32ArrayParam(float a, float b) {
		return a + b;
	}
}

我们把生成好的文件放入到typescript项目的src/lib/wasm目录下。
加载并且使用模块:

// 引入必要的类型定义
type ImportObject = WebAssembly.Imports;

// 定义C++函数的接口
interface DiluteModule {
    getFloat32ArrayParam: (a: number, b: number) => number;
}

async function loadWasmModule(): Promise<DiluteModule>{

    const importObject: WebAssembly.Imports = {
        // 如果你的C++模块需要导入任何JavaScript函数或内存,在这里定义它们
    };

    // 使用fetch来获取wasm模块
    const response = await fetch('src/lib/wasm/libExportDilute.wasm');
    const buffer = await response.arrayBuffer();
    const module = await WebAssembly.instantiate(buffer, importObject);

    // 返回模块的导出函数
    return module.instance.exports as unknown as DiluteModule;
}

async function useModule(){
    const wasmModule = await loadWasmModule();
    const result = wasmModule.getFloat32ArrayParam(74.1549615415641, 21.18798465);
    console.log(result); // 输出结果
}

然后尝试调用useModule函数即可。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值