我正在学习 emscripten,在 C++ 和 JS 之间传递字符串时,我什至无法进行最基本的字符串操作。
例如,我想写一个字符串长度函数。在 C++ 中:
extern "C" int stringLen(std::string p)
{
return p.length();
}
从javascript调用为:
var len = _stringLen("hi.");
这0
对我来说是有效的。我如何使这项工作按预期进行?我应该在这里使用哪种字符串类型?char const*
? std::wstring
? std::string
? 似乎没有一个工作;我总是得到相当随机的值。
这只是开始......然后我如何从 C++ 中返回一个这样的字符串?
extern "C" char *stringTest()
{
return "...";
}
在 JS 中:
var str = _stringTest();
再一次,我无法找到一种方法来完成这项工作。我总是在 JS 中得到垃圾。
所以我的问题很清楚:如何通过 Emscripten 在 JS 和 C++ 之间编组字符串类型?