是否可以使用emscripten使用Javascript从C ++打印字符串?

时间:2013-07-04 17:28:35

标签: javascript c++ emscripten

如何使用emscripten将char*std::string传递到外部定义的Javascript函数中?

目前,当我将char*传递给我外部定义的Javascript时,会打印一个数字而不是字符串(指针?)。

以下是我正在使用的代码:

mylib.js

mergeInto(LibraryManager.library, {  
    my_js: function(s) {  
        Module.print(s);
        console.log(s);
        document.getElementById('voronoi').innerHTML = s;
    },
 });

的main.cpp

int main(int argc, const char * argv[])
{
    char* myString = (char*) malloc(10);
    strncpy(myString, "SOMETHING", 10);
    my_js(myString);
    free(myString);
    return 0;
}

运行node ./a.out.js时打印到控制台的结果:

5260128

2 个答案:

答案 0 :(得分:3)

我对emscripten不太熟悉,但this answer似乎还在使用另一个问题  Pointer_stringify("...")从C字符串转换。

答案 1 :(得分:0)

另一种方法是使用embind

您可以参考我的answer here了解详情。