这是因为ReleaseSRWLockExclusive这个系统函数只能在server2008及更高版本的系统上使用,查看Curl代码,定位到easy_lock.h发现了对这两个函数引用的宏其定义
使用该函数是根据系统版本号_WIN32_WINNT的宏定义来使用
再查找_WIN32_WINNT的定义,再config_win32.h中
有根据编译IDE的版本对其定义默认值,这里添加两行定义,降低系统版本号到2003
#define WINVER 0x502
#define _WIN32_WINNT 0x502
编译即可
文章讲述了如何处理在WindowsServer2003上使用ReleaseSRWLockExclusive函数时遇到的兼容性问题。通过对Curl代码的分析,发现函数使用依赖于_WIN32_WINNT宏定义的系统版本。通过在config_win32.h中修改WINVER和_WIN32_WINNT的定义,将系统版本设定为2003级别,使得代码能在较低版本系统上成功编译执行。
3万+

被折叠的 条评论
为什么被折叠?



