所以看起来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)
检查文档和头文件,此错误代码属于无效的syntax..however函数声明的语法绝对应该是有效的。有人有什么想法吗?
发布于 2014-02-05 02:38:48
我认为问题在于您正在使用:float sin(float in)
注册函数的签名。
我假设"in“应该是根据您的in
/out
/inout
函数的参数的名称,但是AngelScript有用于引用的AngelScript说明符,即float sin(float &in)
。
这可能是一个bug,或者可能在某个地方被记录为不能将这些关键字用作函数参数名称。
如果您只是更改签名中参数的名称(回调函数中不需要更改)(例如,float sin(float f)
)或完全删除它(因为签名中根本不需要它) (float sin(float)
),那么您的函数应该可以注册。
https://stackoverflow.com/questions/21567207
复制相似问题