在AngelScript中使用全局函数
Using global functions in 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值。它在进入函数之前不会被设置。我希望你按照我提到的那样做,它会被设置,而不希望它被设置。祝你好运
相关文章:
- 全局函数参数
- 如何定义全局函数指针并分配给特定地址
- 为什么全局函数 void showA(A&x) 能够访问 A 类的私有成员?
- 为什么链接器报告全局函数的乘法定义符号,而不是类静态方法
- CUDA 全局函数未正确添加某些索引的数组值
- Qt - 定义 QML 的全局函数
- 如何在全局函数中访问链表的头部和尾部
- 如何在 c++ 中的全局函数中调用类的对象
- 类方法和全局函数中的别名
- 在C 中将全局函数包括在命名空间中
- 用于定义全局函数"using namespace"
- 为什么在 2 个不同的 cpp 文件中定义内联全局函数会导致神奇的结果
- 使用 lambda 和全局函数调用 ranges::for_each
- Djinni 能否从C++全局函数中生成必要的代码
- 当在Python中定义__str__时,如何将C 的标准全局函数覆盖
- 有没有一种方法可以使全局函数/静态成员函数一次可呼出
- 为什么我不能在头文件中定义全局函数
- 为什么 std::get<T> for 'variant' 是一个全局函数?
- 从C源文件调用C++源文件中定义的全局函数
- 是否可以通过引用将方法从类传递到全局函数或在类之间传递?