找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 30444|回复: 49

GetVersionEx在WIN8.1 RTM X64上遇到的奇怪问题以及解决方案

 火... [复制链接]

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2013-9-1 19:01:10 | 显示全部楼层 |阅读模式
测试代码如下:
  1. OSVERSIONINFOA osi={0};
  2. osi.dwOSVersionInfoSize=sizeof(OSVERSIONINFOA);
  3. GetVersionExA(&osi);
  4. printf("osi.dwBuildNumber=%ld",osi.dwBuildNumber);
复制代码
此函数在WIN8.1 RTM X64上的返回值竟然是9200而不是9600!
Untitled.png
此图中有两个记事本,一个是WINDOWS NT的记事本,一个是WINDOWS 8自带的记事本,可见两者显示的版本号不同。

临时解决方案:
游客,如果您要查看本帖隐藏内容请回复

1

主题

49

回帖

1

精华

金牌会员

积分
1225
发表于 2013-9-1 19:07:30 | 显示全部楼层
看有码。

0

主题

12

回帖

0

精华

初来乍到

积分
21
发表于 2013-9-1 19:12:28 | 显示全部楼层
嘿嘿,这个帖子要回复看看!!...

0

主题

117

回帖

0

精华

铜牌会员

积分
258
发表于 2013-9-2 20:23:05 | 显示全部楼层
有这种情况?

7

主题

414

回帖

1

精华

铂金会员

积分
2173
发表于 2013-9-2 22:04:31 | 显示全部楼层
不會吧. 你連8.1也玩了喔, 了不起

0

主题

19

回帖

0

精华

铜牌会员

积分
96
发表于 2013-9-5 14:30:32 | 显示全部楼层
8.1的PG一样搞吗

0

主题

126

回帖

0

精华

铜牌会员

积分
226
发表于 2013-9-8 12:34:52 | 显示全部楼层
看有码。~

评分

参与人数 1水晶币 -1 收起 理由
admin -1 不要复制别人的话。

查看全部评分

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
 楼主| 发表于 2013-9-14 09:49:32 | 显示全部楼层
zhuxinlang 发表于 2013-9-5 14:30
8.1的PG一样搞吗

WIN8的PG暂时破不了。

0

主题

19

回帖

0

精华

铜牌会员

积分
79
发表于 2013-11-24 22:27:08 | 显示全部楼层
这个BUG很恐怖啊

0

主题

30

回帖

0

精华

铜牌会员

积分
47
发表于 2014-1-1 01:09:16 | 显示全部楼层
看看楼主怎么解决

0

主题

2

回帖

0

精华

初来乍到

积分
10
发表于 2014-2-12 10:08:18 | 显示全部楼层
还有这事啊

1

主题

9

回帖

0

精华

铜牌会员

积分
47
发表于 2014-3-20 11:32:55 | 显示全部楼层
恢复看看。。。。

0

主题

14

回帖

0

精华

铂金会员

积分
2276
发表于 2014-4-25 22:50:05 | 显示全部楼层
刚好遇到这个问题

3

主题

52

回帖

0

精华

金牌会员

积分
1043
发表于 2014-6-5 15:08:14 | 显示全部楼层
逗比微软。。。

1

主题

77

回帖

0

精华

铂金会员

积分
1972
发表于 2014-11-4 14:43:25 | 显示全部楼层
学习了

0

主题

49

回帖

0

精华

钻石会员

积分
2911
发表于 2014-11-4 19:47:37 | 显示全部楼层
回帖看码

1

主题

35

回帖

0

精华

铜牌会员

积分
111
发表于 2014-11-15 11:30:23 | 显示全部楼层
好吧,这个要回

1

主题

35

回帖

0

精华

铜牌会员

积分
111
发表于 2014-11-15 11:30:45 | 显示全部楼层
好吧,这个要回

1

主题

82

回帖

0

精华

铜牌会员

积分
156
发表于 2014-12-7 19:44:55 | 显示全部楼层
这么有趣必须看一下

5

主题

52

回帖

0

精华

钻石会员

积分
4275
发表于 2015-1-19 08:30:50 | 显示全部楼层
学习~~~~

0

主题

117

回帖

0

精华

银牌会员

积分
595
发表于 2015-1-22 00:48:40 | 显示全部楼层
看下,,,我记得通过 manifest
可以解决。。

0

主题

117

回帖

0

精华

银牌会员

积分
595
发表于 2015-1-22 00:48:54 | 显示全部楼层
看下,,,我记得通过 manifest
可以解决。。

1

主题

146

回帖

0

精华

贵宾会员

积分
2836
发表于 2015-4-12 00:51:25 | 显示全部楼层
dsaddadsa

30

主题

693

回帖

0

精华

钻石会员

积分
2815
发表于 2015-4-20 10:52:18 | 显示全部楼层
每日阅览 每日进步

0

主题

10

回帖

0

精华

初来乍到

积分
30
发表于 2015-5-4 10:14:07 | 显示全部楼层
叮叮叮

5

主题

103

回帖

0

精华

铜牌会员

积分
252
发表于 2015-6-11 17:59:53 | 显示全部楼层
谢谢分享!我就是喜欢你。

0

主题

25

回帖

0

精华

铜牌会员

积分
59
发表于 2015-6-15 19:09:21 | 显示全部楼层
huifu 回复看内容

2

主题

165

回帖

0

精华

金牌会员

积分
944
发表于 2015-6-16 09:25:19 | 显示全部楼层
来看看这个问题的

28

主题

116

回帖

0

精华

铜牌会员

积分
273
发表于 2015-6-17 12:23:34 | 显示全部楼层
gfw,如果您要查看本帖隐藏内容请回复

0

主题

41

回帖

0

精华

铜牌会员

积分
116
发表于 2015-6-25 19:22:42 | 显示全部楼层
是我想到的那个办法么?
好奇 看看~

0

主题

15

回帖

0

精华

铜牌会员

积分
35
发表于 2015-9-2 14:01:17 | 显示全部楼层
强力围观

0

主题

117

回帖

0

精华

银牌会员

积分
595
发表于 2015-9-2 16:39:04 | 显示全部楼层
分享下,自己的



/*
        * Parameter(s)  : dwMajorVer    主版本
                          dwMinorVer    次版本
                                          dwBuildNumber build号
        * Description   : 调用RtlGetNtVersionNumbers获取系统版本信息
        * Return        : TRUE    成功
                          FALSE   失败
*/
BOOL GetNtVersionNumbers( DWORD& dwMajorVer, DWORD& dwMinorVer, DWORD& dwBuildNumber )
{
        BOOL bRet= FALSE;
        HMODULE hModNtdll= NULL;
        if (hModNtdll= ::LoadLibraryW(L"ntdll.dll"))
        {
                typedef void (WINAPI *pfRTLGETNTVERSIONNUMBERS)(DWORD*,DWORD*, DWORD*);
                pfRTLGETNTVERSIONNUMBERS pfRtlGetNtVersionNumbers;
                pfRtlGetNtVersionNumbers = (pfRTLGETNTVERSIONNUMBERS)::GetProcAddress(hModNtdll, "RtlGetNtVersionNumbers");
                if (pfRtlGetNtVersionNumbers)
                {
                        pfRtlGetNtVersionNumbers(&dwMajorVer, &dwMinorVer,&dwBuildNumber);
                        dwBuildNumber &= 0x0ffff;
                        bRet = TRUE;
                }
                ::FreeLibrary(hModNtdll);
                hModNtdll = NULL;
        }

        return bRet;
}
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表