私は文字列として次のJavaScriptコードを持っています
std :: string script = "{function execute(){var x = 10; return x;}}";
このスクリプトを評価して値を返したいのですが、これを行う方法はありますか?
前もって感謝します。
私は文字列として次のJavaScriptコードを持っています
std :: string script = "{function execute(){var x = 10; return x;}}";
このスクリプトを評価して値を返したいのですが、これを行う方法はありますか?
前もって感謝します。
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));