因为微软团队发现redis在Posix体系下,off_t被定义成64位,而在windows下被sys\types.h文件定义成32位,所以windows团队就在工程属性里定义了_OFF_T_DEFINED ,使32位的不生效,用自己定义在文件的,所以我们需要在自已的工程中,也进行同样的操作。
操作过程如下:
1、打开工程属性 — C/C++ — 预处理器中的预处理器定义增加_OFF_T_DEFINED定义,将_DEBUG定义更改为NDEBUG
2、打开工程属性 — C/C++ — 代码生成中的运行库将多线程(/MTD)更改为多线程(/MT)
3、将Redis相关头文件均放在系统头文件之前
另外一种方法是:不使用Win32_Interop.h头文件,因为在该头文件中也只是使用了Timeval数据类型,可以用系统中的WinSock2.h头文件进行替代。
操作过程和上面方法差不多,将_DEBUG定义更改为NDEBUG,将多线程(MTD)更改为多线程(/MT)即可。