在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。
我不知道我的错误在哪里。我很感激能得到的任何帮助。
您错误地注册了此函数。应该是:
engine->RegisterGlobalFunction("int multi(int, int)", asFUNCTION(multi), asCALL_CDECL);
Out表示此函数将使用此参数作为输出。
应该是:
engine->RegisterGlobalFunction("int multi(int, int)", asFUNCTION(multi), asCALL_CDECL);
当您使用out时,它希望您设置out值。它在进入函数之前不会被设置。我希望你按照我提到的那样做,它会被设置,而不希望它被设置。祝你好运