2014-10-27 60 views
0

我在使用C++應用程序中的AngelScripts全局函數時遇到了問題。在AngelScript中使用全局函數

在我.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); 

在我的。至於我的文件調用該函數是這樣的:

multi(1, 2); 

所以在這種情況下,我希望x是1,y是2,但是當我用cout打印這些值時,它就像x = 4318096和d y = 4318100.

我無法弄清楚我的錯誤在哪裏。我感謝任何幫助,我可以得到。

回答

1

您註冊此功能錯誤。它應該是:

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

Out表示此函數將使用此參數作爲輸出。

+0

非常感謝你,我確信它會是一件簡單的事情 – Zydar 2014-10-27 09:32:29

0

它應該是:

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

當你使用了它期望你設置的超時值。它在進入函數之前不會被設置。我會按照我提到的那樣做,但不會期望它被設置。祝你好運。