0

Qtcreator が提供する例を使用していますが、このエラーが発生しています... ??

ここに画像の説明を入力

void MainWindow::hBtn
{
    QScriptEngine e;

    QScriptValue fun = e.newFunction(myAdd);  // ERROR: No matching function...
    e.globalObject().setProperty("myAdd", fun);

    QScriptValue result = e.evaluate("myAdd(myNumber, 1)");
}


QScriptValue myAdd(QScriptContext *context, QScriptEngine *engine)
//also tried:  QScriptValue MainWindow::myAdd(QScriptContext *context, QScriptEngine *engine) //fails as well with same ERROR
{
   QScriptValue a = context->argument(0);
   QScriptValue b = context->argument(1);
   return a.toNumber() + b.toNumber();
}

例: http://harmattan-dev.nokia.com/docs/library/html/qt4/qscriptengine.html

「ネイティブ関数」まで下にスクロールします


解決策がない問題を抱えている別のユーザーを調べました: Using a member function with QScriptEngine::newFunction

4

2 に答える 2

0

int2 番目のパラメーターに を使用してみてください。QScriptValue関係ありませんint

編集:わかりました、を使用して別の可能な組み合わせがあることに気付きましたがQScriptValue、 も渡して定数intを作成する必要がある場合があります。fun

それが役に立てば幸い。

于 2013-08-08T15:11:40.940 に答える
0

基礎として使用: C++ でメンバー関数ポインターを渡す

ヘッダー クラスから "myAdd" 宣言を削除しました... 問題は解決しました。

于 2013-08-08T16:12:32.080 に答える