我在C ++应用程序中使用AngelScripts全局函数时遇到了问题。
在我的.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);
在我的.as文件中,我调用了这样的函数:
multi(1, 2);
所以在这种情况下我希望x为1,y为2,但是当我用cout打印值时,它就像x = 4318096和y = 4318100。
我无法弄清楚我的错误在哪里。我感谢任何帮助。
答案 0 :(得分:1)
您注册此功能错误。它应该是:
engine->RegisterGlobalFunction("int multi(int, int)", asFUNCTION(multi), asCALL_CDECL);
Out表示此函数将此参数用作输出。
答案 1 :(得分:0)
应该是:
engine->RegisterGlobalFunction("int multi(int, int)", asFUNCTION(multi), asCALL_CDECL);
当你用完它时,你希望你设置out值。并且它在进入函数之前不会被设置。我是你做的,因为我提到它会被设置,并且不期望它被设置。祝你好运。