public static SQRESULT sq_getstring(HSQUIRRELVM v, SQInteger idx, out string c)
        {
            IntPtr   ptr;
            SQRESULT result;

            if (SQ_SUCCEEDED(result = sq_getstring(v, idx, out ptr)))
            {
                c = Marshal.PtrToStringAnsi(ptr);
            }
            else
            {
                c = null;
            }
            return(result);
        }
 public static extern void sq_pushstring(HSQUIRRELVM v, byte[] s, SQInteger len);
 public static extern SQRESULT sq_call(HSQUIRRELVM v, SQInteger args, SQBool retval, SQBool raiseerror);
 public static extern SQRESULT sq_compilebuffer(HSQUIRRELVM v, byte[] s, SQInteger size, string sourcename, SQBool raiseerror);
 public static extern void sq_remove(HSQUIRRELVM v, SQInteger idx);
 public static extern void sq_pop(HSQUIRRELVM v, SQInteger nelemstopop);
 public static extern void sq_push(HSQUIRRELVM v, SQInteger idx);
 public static extern HSQUIRRELVM sq_open(SQInteger initialstacksize);
 public static extern SQRESULT sq_tostring(HSQUIRRELVM v, SQInteger idx);
 public static extern SQRESULT sq_getinteger(HSQUIRRELVM v, SQInteger idx, out SQInteger i);
 public static extern SQRESULT sq_getstring(HSQUIRRELVM v, SQInteger idx, out IntPtr c);
 public static extern SQRESULT sq_newslot(HSQUIRRELVM v, SQInteger idx, SQBool bstatic);