我正在學習emscripten,在C++和JS之間傳遞字符串時,我甚至無法獲得最基本的字符串操作。如何通過emscripten在C++和javascript之間傳遞字符串
例如,我想寫一個字符串長度函數。在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++之間的字符串類型?