Use __in64 type for 64-bit YAZ on Windows
authorAdam Dickmeiss <adam@indexdata.dk>
Sat, 28 Nov 2009 13:12:53 +0000 (14:12 +0100)
committerAdam Dickmeiss <adam@indexdata.dk>
Sat, 28 Nov 2009 13:12:53 +0000 (14:12 +0100)
include/yaz/nmem.h

index 8e49fee..fb7910c 100644 (file)
@@ -43,20 +43,23 @@ YAZ_BEGIN_CDECL
 /** \brief NMEM handle (an opaque pointer to memory) */
 typedef struct nmem_control *NMEM;
 
-#ifdef _MSC_VER
-#define NMEM_64 0
-#endif
-
 /** \brief Set to 1 if YAZ BER integer is 64-bit ; 0 otherwise */
 #ifndef NMEM_64
 #define NMEM_64 1
 #endif
 
 #if NMEM_64
-/** \brief BER/utility integer (64-bit or more) */
+
+#ifdef _MSC_VER
+/* Visual Studio. 6.0 and later supports this */
+typedef __int64 nmem_int_t;
+#define NMEM_INT_PRINTF "%I64d"
+#else
+/* C99 */
 typedef long long int nmem_int_t;
-/** \brief printf format for nmem_int_t type */
 #define NMEM_INT_PRINTF "%lld"
+#endif
+
 #else
 /** \brief BER/utility integer (32-bit on most platforms) */
 typedef int nmem_int_t;