在AngelScript中使用全局函数



在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值。它在进入函数之前不会被设置。我希望你按照我提到的那样做,它会被设置,而不希望它被设置。祝你好运

最新更新