首页 > 代码库 > x86_64 xercexc: error: cast from 'const void*' to 'long int' loses precision [-fpermissive]

x86_64 xercexc: error: cast from 'const void*' to 'long int' loses precision [-fpermissive]

mingw编译x86_64版本xerces-c-2.8.0:

修改src/xercesc/util/HashPtr.cpp:
unsigned int HashPtr::getHashVal(const void *const key, unsigned int mod
                                 , MemoryManager* const)
{
 return ((long long)key % (unsigned long)mod);
}

修改src/xercesc/internal/XSerializeEngine.cpp:
inline XMLSize_t XSerializeEngine::alignAdjust(XMLSize_t size) const
{
    XMLSize_t remainder = (long long) fBufCur % size;
    return (remainder == 0) ? 0 : (size - remainder);
}

x86_64 xercexc: error: cast from 'const void*' to 'long int' loses precision [-fpermissive]