小编use*_*135的帖子

emscripten:如何解决UnboundTypeError

我正在尝试使用emscripten构建一个使用std :: vector和std :: map的程序,并且编译成功.但是,当我在Web浏览器(firefox/chrome)上运行它时,会捕获UnboundTypeError.

[03:21:26.453] UnboundTypeError:由于未绑定类型,无法调用intArrayToVector:Pi

这是使用生成的javascript代码的c ++代码和HTML文件.

TEST.CPP:

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

using namespace emscripten;

std::vector<int> intArrayToVector(int* input, int num){
    std::vector<int> vec;
    for(int i=0; i<num; i++){
        int val = *(input+i);
        vec.push_back(val);
    }
    return vec;
}

EMSCRIPTEN_BINDINGS(test){
    register_vector<int>("VectorInt");
    function("intArrayToVector", &intArrayToVector, allow_raw_pointer<arg<0>>());
}
Run Code Online (Sandbox Code Playgroud)

的test.html:

<html>
<body>
<script src="test.js"></script>
<script>
    var num = 6;
    var buf = Module._malloc(100);
    var arr = new Int8Array(num);
    for(var i=0; i<num; i++){
        arr[i] = i+2;
    }
    Module.HEAP8.set(arr, buf);
    var v = Module.intArrayToVector(buf, num);

    for(var i=0; i<num; …
Run Code Online (Sandbox Code Playgroud)

javascript c++ emscripten

6
推荐指数
1
解决办法
2478
查看次数

标签 统计

c++ ×1

emscripten ×1

javascript ×1