通过 Emscripten 生成的代码没有 return 值

Generated code via Emscripten doesn't return values

我尝试对数组中的 return 值实现一个非常简单的示例。我的例子看起来很简单,但我不明白为什么它不起作用:

这是我的 C++ 代码

static int results[20];

extern "C" {
    void setValue(int index, int value {
        results[index] = value;
    }
    int getValue (int index) {
        return results[index];
    }
};

我的代码在.html:

Module.ccall('setValue',null,['number','number'],1,1);
var val = Module.ccall('getValue','number',['number'],1);

我的编译命令:

emcc --bind -o face_quick_example.js face_quick_example.cpp -s EXPORTED_FUNCTIONS="['_setValue','_getValue']"

我查看了教程和一些 Whosebug 答案,但我无法正常工作

当使用 ccall 时,传递给 C 函数的参数必须在一个数组中,因此调用 setValuegetValue 的 JavaScript 应该是:

Module.ccall('setValue', null, ['number', 'number'], [1, 1]);
var val = Module.ccall('getValue', 'number', ['number'], [1]);