私は 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++ の間で文字列型をマーシャリングするにはどうすればよいですか?