c++ - 在 AngelScript 中使用全局函数

标签 c++ 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 表示此函数将使用此参数作为输出。

关于c++ - 在 AngelScript 中使用全局函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26583902/

相关文章:

c++ - 如何在自定义 DirectShow 过滤器中以秒为单位获得正确的帧时间?

c++ - Angelscript - 应为 ',' 或 ')'

c++ - A*寻路不走最短路径

c++ - 带有可变参数模板的奇怪的重复模板模式 (C++)

c++ - 检查子类是否执行了方法重写

c - Angelscript错误的类型转换

c++ - AngelScript G++链接器错误

c++ - 这个 C++ 模板函数在做什么

c++ - 初始化自定义数组类而不创建拷贝

c++ - 当用户按下 'Ctrl-D' 时,我试图结束我的 C++ 程序