AngelScriptはmacに向いてないよ

AngelSciptに関数を登録するときに、呼び出しの種類が選べます。
それは、汎用か?ネイティブか?というものです。

具体的には登録するときにasCALL_GENERIC,asCALL_CDECL,asCALL_STDCALLを指定します。
どうやら、MacではasCALL_GENERICを指定する必要があるようです。
この指定方法によって関数の書き方がかわります。
tutorial/main.cppから抜粋します。


// Function implementation with native calling convention
void PrintString(string &str)
{
cout << str; }

PrintStringはネイティブなので、C++関数そのままです。


// Function implementation with generic script interface
void PrintString_Generic(asIScriptGeneric *gen)
{
string *str = (string*)gen->GetArgAddress(0);
cout << *str; }

PrintString_Genericは引数を取り出すコードが追加してあります。
C++の関数をそのまま登録できるのがAngelScriptの大きな利点です。
そのLuaに勝っている点の一つが台無しでした。

しょうがないので、Macでの検証はここまでにします。

もっと読む