delphi - BDS2006 中的 GetVersionExW 错误

标签 delphi delphi-2006

这在 Delphi 2009 中有效,但在 TurboDelphi/BDS2006 中我收到错误:

[Pascal Error] xxx.pas(117): E2033 Types of actual and formal var parameters must be identical

 ...
  var
     osVerInfo : TOSVersionInfoExW;
     i : Integer;
     begin
        FillChar(osVerInfo, SizeOf(osVerInfo), 0);
        osVerInfo.dwOSVersionInfoSize:=SizeOf(TOSVersionInfoExW) ;
        if GetVersionExW(osVerInfo) then
...

最佳答案

似乎有问题,但在 D2007 中(因此我猜在 D2006 中也是如此)GetVersionExW 需要 TOSVersionInfoEx 作为参数。在 D2009 中,这等于 TOSVersionInfoExW,但在 D2009 以下,这等于 TOSVersionInfoExA。您应该将 osVerInfo 声明为 TOSVersionInfoEx 来顺利进行。这应该可以与两个版本一起编译。

关于delphi - BDS2006 中的 GetVersionExW 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5946333/

相关文章:

delphi - 为什么我不能在 TRecord 中使用变量?

delphi - 对 EIdConnClosedGraceively 异常进行故障排除?

delphi - 如何强制 TFrame 上的组件拥有自己的事件处理程序?

Delphi 2006 - 分配动态数组函数结果

delphi - Delphi中查找编号最大的文件的有效方法

delphi - 更改 ShowMessage 对话框的标题和属性

delphi - 如何在设计时隐藏表单上的非可视组件?

Delphi - 无法引用在运行时创建的对象

delphi - 重命名文件时出现错误 32(文件正在被另一个进程使用)

delphi - Delphi无法检索进程内存使用情况