是否可以使用 emscripten 使用 Javascript 从 C++ 打印字符串?
Posted
技术标签:
【中文标题】是否可以使用 emscripten 使用 Javascript 从 C++ 打印字符串?【英文标题】:Is it possible to print a string from C++ with Javascript using emscripten? 【发布时间】:2013-07-04 17:28:35 【问题描述】:如何使用 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
【问题讨论】:
【参考方案1】:我对 emscripten 不是很熟悉,但是 this answer 到另一个问题似乎使用
Pointer_stringify("...")
从 C 字符串转换。
【讨论】:
【参考方案2】:另一种方法是使用embind。
您可以参考我的answer here了解更多详情。
【讨论】:
以上是关于是否可以使用 emscripten 使用 Javascript 从 C++ 打印字符串?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以像现在一样轻松编译 Emscripten,但没有控制台和 emscripten 徽标?
使用 Clang 编译的可执行文件中的 emscripten