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

Reply via email to