如何使用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
答案 0 :(得分:3)
我对emscripten不太熟悉,但this answer似乎还在使用另一个问题
Pointer_stringify("...")
从C字符串转换。
答案 1 :(得分:0)
另一种方法是使用embind。
您可以参考我的answer here了解详情。