On Fri, 2007-10-26 at 23:33 +1000, Sisyphus wrote: > During compilation I get the errors: > > _64bit_pl_498e.xs:20: error: syntax error before "SvGUInt64" > _64bit_pl_498e.xs:30: error: syntax error before "value" > _64bit_pl_498e.xs: In function `newSVGUInt64': > _64bit_pl_498e.xs:40: error: `value' undeclared (first use in this function) > _64bit_pl_498e.xs:40: error: (Each undeclared identifier is reported only > once > _64bit_pl_498e.xs:40: error: for each function it appears in.) > > I believe the errors arise because the 'guint64' type is uknown. Is there a > missing header ? > > I would think we'll also need a typemap that tells perl how to deal with the > guint64 type.
As muppet said, these errors arise because I simply copied the code from the Glib module. The guint64 type comes from the glib library, the typemaps are supplied by the Glib module. > As regards runtime errors, something like "%llu" will not be interpreted > correctly on Windows 2000 and earlier - you'll want to use "%I64u", "%I64x" > and "%I64d". (The same possibly applies to Windows XP - but I haven't > checked.) On my Vista 64 box I find that "%llu", "%llx", and "%lld" *are* > interpreted correctly (as also are "%I64u", "%I64x" and "%I64d"). Apparently > theWindows C runtime has been modified for Vista 64 (and probably Vista 32 > as well - again I haven't checked). Ugh, OK. So we need platform-specific format specifiers, as well. Thanks for the information. -- Bye, -Torsten