ich Emscripten lerne, und ich kann nicht einmal die grundlegendste String-Manipulation erhalten arbeiten, wenn Strings zwischen C++ und JS geben.Wie Zeichenketten zwischen C++ und Javascript passieren über Emscripten
Zum Beispiel würde Ich mag eine String-Länge-Funktion schreiben. In C++:
extern "C" int stringLen(std::string p)
{
return p.length();
}
von Javascript Genannt als:
var len = _stringLen("hi.");
Diese 0
für mich ergibt. Wie mache ich das wie erwartet? Welchen Stringtyp soll ich hier verwenden? char const*
? std::wstring
? std::string
? Keins scheint zu arbeiten; Ich bekomme immer ziemlich zufällige Werte.
Dies ist nur der Anfang ... Wie kann ich dann eine Zeichenfolge aus C++ wie folgt zurückgeben?
extern "C" char *stringTest()
{
return "...";
}
Und in JS:
var str = _stringTest();
Wieder kann ich diese Arbeit nicht einen Weg finden, zu machen; Ich bekomme immer Müll in JS.
So ist meine Frage klar: Wie kann ich String-Typen zwischen JS und C++ über Emscripten Marschall?