VS2010 MFC编程如何使程序在带有WIN7特有接口的情况下在XP上运行
如题:如何使程序在带有WIN7特有接口的情况下在XP上运行。我的程序里有XP和win7两套运行代码的,只要是在XP上,就运行XP的程序段。在win7上就运行win7特有的...
如题:如何使程序在带有WIN7特有接口的情况下在XP上运行。
我的程序里有XP和win7两套运行代码的,只要是在XP上,就运行XP的程序段。在win7上就运行win7特有的程序段。
现在是我的win7程序段在XP上没有这些接口函数的。但在XP上我不需要运行这些啊,可是一开启程序就报我没有win7的这些接口的错。我要怎么做才能使他不报错? 展开
我的程序里有XP和win7两套运行代码的,只要是在XP上,就运行XP的程序段。在win7上就运行win7特有的程序段。
现在是我的win7程序段在XP上没有这些接口函数的。但在XP上我不需要运行这些啊,可是一开启程序就报我没有win7的这些接口的错。我要怎么做才能使他不报错? 展开
1个回答
展开全部
用Dependency walker 查看你的应用程序,然后把缺少的dll打到后,放在你的程序目录下,如果有些dll是win7才有(XP没有)的系统DLL的话,就比较麻烦了,这种情况下,dll依赖项很多,不好搞。如果是非系统DLL,你就直接复制到你的程序目录下吧。
更多追问追答
追问
我做的应用程序是兼容XP和WIN7的,他必须在不同系统运行不同代码段。恰好是在XP上遇到WIN7代码段出问题。
我试着把DLL复制过安装目录还是不行。那个是WIN7特有的。
追答
那你就这样吧,通过判断系统版本号,如果你使用的开发环境是VS2013以前版本的,你就使用GetVersionEx来获取系统的主版本号,通过判断主版本号大于等于6,且副版本号大于等于1就是Win7以上系统。如果你在VS2013中,就使用IsWindows7OrGreater函数,这个函数需要包含头文件Versionhelpers.h。判断好之后,就可以分开执行各系统所需的代码了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询