1

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

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

这是我正在使用的代码:

mylib.js

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

主文件

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

4

2 回答 2

3

我对 emscripten 不是很熟悉,但是这个对另一个问题的回答似乎用于 Pointer_stringify("...")从 C 字符串转换。

于 2013-07-04T18:53:17.283 回答
0

另一种方法是使用embind

您可以在此处参考我的答案以获取更多详细信息。

于 2016-08-17T10:43:02.153 回答