Delphi2007,XE2 调用GetVersionEx在Win10下为6.1的原因及解决方法

在Delphi2007和XE2中,使用GetVersionEx函数获取系统版本时返回6.1,而非Win10的正确版本。原因是微软的改动。解决方案是创建包含特定内容的.manifest文件,将其编译为资源文件并添加到DPR,或者在DelphiXE及以上版本直接添加.manifest文件进行编译。确保生成的EXE独立运行以应用.manifest。
摘要由CSDN通过智能技术生成
procedure TForm1.Button2Click(Sender: TObject);
var
  OsInfo: TOSVersionInfo;
const
  s = '主编号: %d' + sLineBreak +
      '次编号: %d' + sLineBreak +
      '建立编号: %d' + sLineBreak +
      '作业平台: %d' + sLineBreak +
      '更多说明: %s';
begin
  OsInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); {先根据大小要内存}

  GetVersionEx(OsInfo);
  ShowMessage(Format(s, [OsInfo.dwMajorVersion,
                         OsInfo.dwMinorVersion,
                         OsInfo.dwBuildNumber,
                         OsInfo.dwPlatformId,
                         OsInfo.szCSDVersion]));
end;

Delphi2007,XE2下居然均返回6.1,而在最新的Delphi10.x下是正常的,可以取到正确的10.0 百度了一下,找到原因:

原来是微软搞的鬼

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值