Angelscript - 期待','或')'

时间:2014-02-05 01:52:03

标签: c++ angelscript

所以看起来Angelscript与它允许我处理的功能相当不一致。我正试图宣布一个全局函数:

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

我的sin回调函数(调用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)

检查文档和头文件,此错误代码与无效语法有关。但是,函数声明的语法肯定应该是有效的。有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为问题是您使用以下方式注册功能的签名:float sin(float in) 我假设“in”应该是你的C ++函数的参数名称,但是AngelScript有in / out / inout个引用说明符,即{{ 1}}。

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

如果您只是更改签名中参数的名称(回调函数中没有必要更改)(例如float sin(float &in))或完全删除它(float sin(float f),因为签名中不需要它在所有),你的功能应该注册。