在AngelScript中使用全局函数

问题描述:

我在使用C++应用程序中的AngelScripts全局函数时遇到了问题。在AngelScript中使用全局函数

在我.cpp文件我具备的功能:

int multi(int x, int y) 
{ 
    int z = x * y; 
    cout << x << endl; 
    cout << y << endl; 
    return z; 
} 

我注册它使用:

engine->RegisterGlobalFunction("int multi(int &out, int &out)", asFUNCTION(multi), asCALL_CDECL); 

在我的。至于我的文件调用该函数是这样的:

multi(1, 2); 

所以在这种情况下,我希望x是1,y是2,但是当我用cout打印这些值时,它就像x = 4318096和d y = 4318100.

我无法弄清楚我的错误在哪里。我感谢任何帮助,我可以得到。

您注册此功能错误。它应该是:

engine->RegisterGlobalFunction("int multi(int, int)", asFUNCTION(multi), asCALL_CDECL); 

Out表示此函数将使用此参数作为输出。

+0

非常感谢你,我确信它会是一件简单的事情 – Zydar 2014-10-27 09:32:29

它应该是:

engine->RegisterGlobalFunction("int multi(int, int)", asFUNCTION(multi), asCALL_CDECL); 

当你使用了它期望你设置的超时值。它在进入函数之前不会被设置。我会按照我提到的那样做,但不会期望它被设置。祝你好运。