在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。
我不知道我的错误在哪里。我很感激我能得到的任何帮助。
发布于 2014-10-27 09:01:52
您注册这个函数错误。它应该是:
engine->RegisterGlobalFunction("int multi(int, int)", asFUNCTION(multi), asCALL_CDECL);Out意味着此函数将使用此参数作为输出。
发布于 2015-06-12 00:21:56
它应该是:
engine->RegisterGlobalFunction("int multi(int, int)", asFUNCTION(multi), asCALL_CDECL);当您使用out时,它希望您设置out值。它在进入函数之前不会被设定。我希望你这么做,就像我说的,它将被设定,而不期望它被设定。祝好运。
https://stackoverflow.com/questions/26583902
复制相似问题