lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]



On 18 Oct 2006, at 21:36, Nick Gammon wrote:


On 18/10/2006, at 9:57 PM, Mike Pall wrote:


#define LUA_INTFRMLEN           "I64"

Yes, this gives %I64d. Proprietary M$ stuff *sigh*. But I'm not
sure whether this is already supported in V6 or only in later
versions.

Oh, cool, that works. Didn't think to try that.

When using MS VC++ v 6, I needed this:

#define LUA_INTFRMLEN           "I64"
#define LUA_INTFRM_T            __int64

When using gcc, I used:

#define LUA_INTFRMLEN           "ll"
#define LUA_INTFRM_T            long long

This worked when using the cygwin1.dll.


However to use the standard libraries (ie. -mno-cygwin) I needed a hybrid which it hadn't occurred to me to try:

#define LUA_INTFRMLEN           "I64"
#define LUA_INTFRM_T            long long

Because "long long" is a feature of the compiler, gcc, and "l64" is a feature of printf in the library. "l64". It's almost as if Microsoft go to the standards meetings just so they can deliberately do something else.

drj