1

私は文字列として次のJavaScriptコードを持っています

std :: string script = "{function execute(){var x = 10; return x;}}";

このスクリプトを評価して値を返したいのですが、これを行う方法はありますか?

前もって感謝します。

4

1 に答える 1

3

JSスクリプトを評価するには、次のものが必要です。

JSBool JS_EvaluateScript(JSContext *cx, JSObject *obj, const char *src, uintN length, const char *filename, uintN lineno, jsval *rval);

ここで説明されているように:https ://developer.mozilla.org/en-US/docs/SpiderMonkey/JSAPI_Reference/JS_EvaluateScript

次に、戻り値を取得する場合は、exectue関数を呼び出す必要があります。

"function execute(){ var x = 10; return x;} execute();"

次に、スクリプトを評価するには、const char*タイプではなくタイプである必要があります。std::string

スクリプトを評価した後、rvalを使用して戻り値を取得できます

if(JSVAL_IS_INT(rval))
  printf("The returned value is : %d\n", JSVAL_TO_INT(rval));
于 2013-04-09T01:14:14.650 に答える