【问题标题】:Using global functions in AngelScript在 AngelScript 中使用全局函数
【发布时间】:2014-10-27 08:51:12
【问题描述】:

我在 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。

我不知道我的错误在哪里。我很感激能得到任何帮助。

【问题讨论】:

    标签: c++ angelscript


    【解决方案1】:

    你注册了这个函数错误。应该是:

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

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

    【讨论】:

    • 非常感谢,我相信它会很简单
    【解决方案2】:

    应该是:

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

    当您使用 out 时,它希望您设置 out 值。而且它在进入函数之前不会被设置。我会按照我提到的那样去做,它将被设置并且不希望它被设置。祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      相关资源
      最近更新 更多