2016-09-29 54 views
1

我嘗試實現一個非常簡單的示例以從數組中返回值。我例子似乎簡單,但我不明白爲什麼它不工作:通過Emscripten生成的代碼不返回值

這是我的代碼在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']" 

我檢查了教程和一些計算器的答案,但我做不到它的工作

回答

4

當使用ccall的參數傳遞到C函數必須是一個數組裏面,所以你調用setValuegetValue JavaScript的應該是:

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