微軟在win10下明文廢掉了GetVersionEx,不得已改用VerifyVersionInfo這個蛋疼的函數進行比對了,
但是寫了代碼無論怎樣都編譯不過,哪位大神可以幫我修改下或者指出哪裡有問題,謝謝!var
VsInfo: TOSVersionInfoEx;
bl:boolean;
dwlConditionMask: DWORDLONG;
begin
FillChar(VsInfo,SizeOf(TOSVersionInfoEx),0);
VsInfo.dwOSVersionInfoSize :=SizeOf(TOSVersionInfoEx);
VSInfo.dwMajorVersion:=10;
VSInfo.dwMinorVersion:=0;
dwlConditionMask:=0;
VerSetConditionMask(dwlConditionMask,VER_MAJORVERSION,VER_GREATER_EQUAL);
VerSetConditionMask(dwlConditionMask,VER_MINORVERSION,VER_GREATER_EQUAL);
bl:=VerifyVersionInfo(TOSVersionInfoEx(Addr(VsInfo)^),VER_MAJORVERSION and VER_MINORVERSION,dwlConditionMask) ; /*[dcc32 Error] APubUnit.pas(852): E2033 Types of actual and formal var parameters must be identical*/
if bl then
Result :='Win10';
end;
但是寫了代碼無論怎樣都編譯不過,哪位大神可以幫我修改下或者指出哪裡有問題,謝謝!var
VsInfo: TOSVersionInfoEx;
bl:boolean;
dwlConditionMask: DWORDLONG;
begin
FillChar(VsInfo,SizeOf(TOSVersionInfoEx),0);
VsInfo.dwOSVersionInfoSize :=SizeOf(TOSVersionInfoEx);
VSInfo.dwMajorVersion:=10;
VSInfo.dwMinorVersion:=0;
dwlConditionMask:=0;
VerSetConditionMask(dwlConditionMask,VER_MAJORVERSION,VER_GREATER_EQUAL);
VerSetConditionMask(dwlConditionMask,VER_MINORVERSION,VER_GREATER_EQUAL);
bl:=VerifyVersionInfo(TOSVersionInfoEx(Addr(VsInfo)^),VER_MAJORVERSION and VER_MINORVERSION,dwlConditionMask) ; /*[dcc32 Error] APubUnit.pas(852): E2033 Types of actual and formal var parameters must be identical*/
if bl then
Result :='Win10';
end;
解决方案 »
- 如果编程语言是女人——补充了delphi
- 请各位大侠给我一个Diamond-access的组件,谢谢了
- 文本框裡怎麼區分數字,字符串和日期?
- 这个问题很难吗,怎么没有人回答?难到是DELPHI的报表不能实现???
- 怎么把结果集传给TclientDataSet控件
- 我用ADO连接Oracle出现CPU错误,而连其它类型数据库却没有出错
- 如何读出光盘中所有歌曲的名称?
- 我用Indy做Ftp Client,得到的是文件和目录的完整信息,怎么分别得到文件名,大小等
- 请问,我在DELPHI6中设置EXECL的列宽时为什么总是报错??
- 类的引用
- image1.Picture.LoadFromFile 的问题
- 求助 在teechart中 如何将曲线超出Y轴边界的部分从Y轴底部显示
TOSVersionInfoExW = _OSVERSIONINFOEXW;
TOSVersionInfoEx = TOSVersionInfoExW;
GetVersionEx并没有废掉,在win10下它返回6.2,非常恰如其分地说明了win10的性质(windows7是6.1)。
看来ms的内核组是想把核心版本和产品版本区分开来。
win10的性质(windows7是6.1)
差别不甚大?