最近做的一个MFC项目中使用到了BtnST的第三方组件,由于使用的BtnST源代码比较旧,在用visual studio 2017 编译的时候,把原本支持Xp的功能去掉,重新编译马上就提示 BCMenu.cpp中的
if (osvi!=NULL){
memset(osvi,0,sizeof(OSVERSIONINFO));
osvi->dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(osvi);
if(osvi->dwMajorVersion==4L)ShellType=WinNT4;
else if(osvi->dwMajorVersion==5L&&osvi->dwMinorVersion==0L)ShellType=Win2000;
else if(osvi->dwMajorVersion==5L&&osvi->dwMinorVersion==1L)ShellType=WinXP;
free(osvi);
}
提示错误 error C4996: 'GetVersionExW': 被声明为已否决,在网上查了一些解决方案,最后选用了禁用 SDL检测 这个办法来解决了。