天使脚本 - 预期的','或')'

Angelscript - Expected ',' or ')'

本文关键字:脚本 天使      更新时间:2023-10-16

因此,似乎Angelscript与我可以处理的功能相当不一致。我正在尝试这样声明全局函数:

scrpEngine->RegisterGlobalFunction("float sin(float in)", asFUNCTION(sinCallback), asCALL_CDECL);

我的sin回调函数(这是调用罪恶函数而不必担心它被超载)看起来像这样:

float sinCallback(float in) {
    return sin(in);
}

每当我编译脚本时,我会遇到错误,特别是这些:

ERROR: System function (1:17) : Expected ')' or ','
ERROR:  (0:0) : Failed in call to function 'RegisterGlobalFunction' with 'float sin(float in)' (Code: -10)

检查文档和标题文件,此错误代码与无效的语法有关。.如何肯定应该有效函数声明的语法。有人有任何想法吗?

我认为问题是您正在注册功能的签名: float sin(float in)
我假设按照您的C 函数,应该"在"中是参数的名称,但是Angelscript具有用于参考的in/out/inout指定器,即float sin(float &in)

这可能是一个错误,或者可能会记录在某个地方您无法将这些关键字用作函数参数名称的地方。

如果您只更改签名中的参数名称(您的回调功能中无需更改)(例如float sin(float f))或完全删除它(float sin(float),因为它在签名中根本不需要),则您的函数应注册很好。