Проблемы с ChaiScript - PullRequest
       27

Проблемы с ChaiScript

0 голосов
/ 23 марта 2010

Я использую язык сценариев ChaiScript с c ++ и Qt. Я определил такую ​​функцию:

void ChaiPainter::drawRectangle(QPainter *painter, int x, int y, int height, int width)
{
    painter.drawRect(x, y, width, height);
}

А в приложении Paint-Event:

void MainWindow::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);

    chaiPainter->mChai.add(chaiscript::var(&painter), "painter");
    chaiPainter->mChai.add(chaiscript::fun(&ChaiPainter::drawRectangle), "drawRect");

    chaiPainter->mChai("drawRect(painter, 5, 5, 100, 100)");
}

Ошибка:

'chaiscript :: Eval_Error' what (): Ошибка: «Нет подходящей функции для отправить с функцией 'drawRect' " во время оценки в (1, 1)

Что я делаю не так?

1 Ответ

1 голос
/ 23 марта 2010

Из документации видно, что вам нужно использовать форму fun(mem_fn, instance) для получения предварительно связанных функций:

chaiPainter->mChai.add(
    chaiscript::fun(&ChaiPainter::drawRectangle, chaiPainter), "drawRect");
...