Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
奇思妙想 我使用C++和Qt的脚本语言CHAISScript。我定义了这样的函数: void ChaiPainter::drawRectangle(QPainter *painter, int x, int y, int height, int width) { painter.drawRect(x, y, width, height); }_C++_Qt_Chaiscript - Fatal编程技术网

奇思妙想 我使用C++和Qt的脚本语言CHAISScript。我定义了这样的函数: void ChaiPainter::drawRectangle(QPainter *painter, int x, int y, int height, int width) { painter.drawRect(x, y, width, height); }

奇思妙想 我使用C++和Qt的脚本语言CHAISScript。我定义了这样的函数: void ChaiPainter::drawRectangle(QPainter *painter, int x, int y, int height, int width) { painter.drawRect(x, y, width, height); },c++,qt,chaiscript,C++,Qt,Chaiscript,以及在涂装活动中: void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this); chaiPainter->mChai.add(chaiscript::var(&painter), "painter"); chaiPainter->mChai.add(chaiscript::fun(&ChaiPainter::drawRectangle), "drawRec

以及在涂装活动中:

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)处进行评估期间


我做错了什么?

从文档中可以看出,您需要使用
fun(mem\u fn,instance)
表单来获取预绑定函数:

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

我不明白,我怎么错过了。非常感谢。