如何将类方法施加到qscriptEngine :: functionsignature
How do I cast class method to QScriptEngine::FunctionSignature
我想通过此方法:
QScriptValue ScriptProcessContext::construct(QScriptContext * ctx, QScriptEngine *)
{
return this->newInstance();
}
到QScriptEngine::newFunction
。我尝试了以下选项:
与文档一样,此示例代码:
QScriptValue ctor = engine->newFunction(construct);
错误:
error C3867: 'ScriptProcessContext::construct': function call missing argument list; use '&ScriptProcessContext::construct' to create a pointer to member
强制演员:
QScriptValue ctor = engine->newFunction((QScriptEngine::FunctionSignature)construct);
错误:
error C2440: 'type cast' : cannot convert from 'overloaded-function' to 'QScriptEngine::FunctionSignature'
将指针铸成成员
QScriptValue ctor = engine->newFunction( (QScriptValue(ScriptProcessContext::*)(QScriptContext *, QScriptEngine *)) &ScriptProcessContext::construct );
错误:
error C2664: 'QScriptValue QScriptEngine::newFunction(QScriptEngine::FunctionSignature,int)' : cannot convert parameter 1 from 'QScriptValue (__cdecl ScriptProcessContext::* )(QScriptContext *,QScriptEngine *)' to 'QScriptEngine::FunctionSignature'
那么如何正确编写?
您尝试通过会员功能。这是不支持的。使用免费功能或静态方法。
请注意,在这两种情况下,您都不会有this
指针。您需要以不需要对象的方式编写功能。
相关文章:
- 如何在 QScriptEngine 中定义“窗口”对象
- QScriptEngine评估数字C 的正方形或立方体
- 如何将类方法施加到qscriptEngine :: functionsignature
- 优化 QScriptEngine 重复操作
- 在为 QScriptEngine 重新定义"print()"函数时返回"Undefined Value"有什么意义?
- "undefined reference to 'QScriptEngine::QScriptEngine()"
- QScriptEngine:错误表达式被认为是有效的
- Qt:数组或字典如何从qscriptengine传递
- 向QScriptEngine添加类