none
targetver.h在windows7中 RRS feed

  • 问题

  • #pragma once
    
    // 以下宏定义要求的最低平台。要求的最低平台
    // 是具有运行应用程序所需功能的 Windows、Internet Explorer 等产品的
    // 最早版本。通过在指定版本及更低版本的平台上启用所有可用的功能,宏可以
    // 正常工作。
    
    // 如果必须要针对低于以下指定版本的平台,请修改下列定义。
    // 有关不同平台对应值的最新信息,请参考 MSDN。
    #ifndef _WIN32_WINNT      // 指定要求的最低平台是 Windows Vista。
    #define _WIN32_WINNT 0x0600   // 将此值更改为相应的值,以适用于 Windows 的其他版本。
    #endif
    
    #define _WIN32_WINNT 0x0600   // 将此值更改为相应的值,以适用于 Windows 的其他版本。在编程的时候老是遇到很多问题,是不是这行
    有什么问题,怎么改0x0600这个值,才是windows7 对应的版本值呢?
    2010年5月22日 14:55

答案

  • 指定要求的最低平台为Windows 7的话,你的程序只能在Windows 7和之后的Windows版本上运行。


    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Nancy Shao 2010年5月28日 10:10
    2010年5月23日 2:29
    版主
  • 这个问题你可以去Windows 7分类下的Windows Update论坛问问。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Nancy Shao 2010年5月28日 10:10
    2010年5月23日 13:27
    版主

全部回复

  • 从VC6.0平台级到VS2008平台
    最近在在把一些程序从VC6迁移到VS2008,由此而关注到一些这方面的知识,找了一些资料,根据自己遇到的一些情况,结合在一起,整理出来这篇文章,希望对以后有这方面工作的人多一些参考,如果大家还有可很享的可以跟贴。。。。

    1、关于 #define WINVER
    提到这个问题是因为,这里涉及到Winodws版本的定义。关于版本定义的关键无外乎为程序头文件中对于#define WINVER 和 #define _WIN32_WINNT 的使用,具体为:

    #define WINVER 0xXXXX#define _WIN32_WINNT 0xXXXX该定义一般用于标示程序对运行环境的要求,另外在某些头文件中也有这样的宏定义。如果版本匹配的话就会在编译的时候将这些内容编译,否则就不编译。

    定义正确的Windows版本,不仅关系到程序的正确编译,同时也关系到程序的正确运行;在升级的过程中,我就碰到了程序编译正确但运行出错的问题。

    版本的定义关系到被编译到程序中的内容,这里主要是指系统提供的功能代码。Windows各个版本的功能虽然大差不差,但特定于某个系统功能还是存在的,于是关系到这些功能的API代码也就有所不一样。当我们在程序中定义了错误的系统版本,被编译进程序的内容便可能包含当前系统不支持的代码片段,这样的程序即使可能正确编译通过,但在运行的时候,由于在当前系统中找不到相应的内容资源,从而发生错误。这一点熟悉动态链接库(DLL)的人都很清楚,其实该问题就是和系统动态链接库有关。
        考虑到我迁移程序的时候,是直接利用VS2008将VC6程序转化的方式,然后按VS2008新建项目的StdAfx.h文件内容更新了原来的StdAfx.h头文件,并添加了VS2008项目才有的targerver.h头文件。(工程转换时,没有targerver.h为我们生成,默认的WINVER = 0x0600 的系统环境(这里指明了系统为Vista),所以要改变就要自己手动添加targerver.h)
    根据targetver.h头文件里的下列定义:

    #ifndef WINVER                  // 指定要求的最低平台是 Windows Vista。#define WINVER 0x0600           // 将此值更改为相应的值,以适用于 Windows 的其他版本。#endif #ifndef _WIN32_WINNT            // 指定要求的最低平台是 Windows Vista。#define _WIN32_WINNT 0x0600     // 将此值更改为相应的值,以适用于 Windows 的其他版本。#endif

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhangbinjn/archive/2009/09/03/4516774.aspx


    这是一位高手在csdn里的文章,我windows7 对应的版本号是什么呢,看来我的推理是对的


    而且我还发现一个问题,在windo7的 windows update中检查不到visual studio 2008 的sp1补丁  这是怎么回事呢。难道我刚在Vista下用vs2008顺手了,又要升级成vs2010?!
    2010年5月22日 15:12
  • [url=http://tu.6.cn/pic/show-new/id/8217376][img]http://i3.6.cn/cvbnm/f5/17/11/2809f205ec073342a454a765db0a9d4b.jpg[/img][/url]

     

    这是MSDN的论坛的相关信息,还是没有windows7的相关版本号!

    2010年5月22日 15:29
  • 这是最低版本的定义,你准备放弃对Windows Vista或者之前版本的支持?

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月22日 23:02
    版主
  • 这是最低版本的定义,你准备放弃对Windows Vista或者之前版本的支持?

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    什么意思呀  能说清楚点吗
    2010年5月23日 2:19
  • 指定要求的最低平台为Windows 7的话,你的程序只能在Windows 7和之后的Windows版本上运行。


    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Nancy Shao 2010年5月28日 10:10
    2010年5月23日 2:29
    版主
  • 指定要求的最低平台为Windows 7的话,你的程序只能在Windows 7和之后的Windows版本上运行。


    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    那么windows 7 下没有vs2008 的sp1补丁又是怎么回事!?
    2010年5月23日 6:26
  • 这个问题你可以去Windows 7分类下的Windows Update论坛问问。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    • 已标记为答案 Nancy Shao 2010年5月28日 10:10
    2010年5月23日 13:27
    版主
  • 这个问题你可以去Windows 7分类下的Windows Update论坛问问。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP

    哇  有那个必要么,这不就是与vs2008 有关吗

    怎么在这问就不行呢?

    2010年5月23日 15:04
  • VS2008不是这个问题的原因,只是这个问题的表现而已……你也可以自己去下Sp1绕过Windows Update。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月23日 15:07
    版主
  • VS2008不是这个问题的原因,只是这个问题的表现而已……你也可以自己去下Sp1绕过Windows Update。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP

    虽然用迅雷下载sp1可以绕过windows update ,但是我在下载网址中看到:

    支持的操作系统: Windows Server 2003; Windows Server 2008; Windows Vista; Windows XP

     

     

    那么这sp1是否能安装在windows 7 呢?

    2010年5月24日 4:27
  • 可以……不过你打微软的技术支持电话未必可以得到支持就是了。微软的支持是指技术支持部门是否处理。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月24日 13:42
    版主
  • 可以……不过你打微软的技术支持电话未必可以得到支持就是了。微软的支持是指技术支持部门是否处理。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP

    “可以……不过你打微软的技术支持电话未必可以得到支持就是了。”

    这句话什么意思呀?

    版主说话太深奥了

    能说清楚点吗

    2010年5月25日 4:34
  • 举个例子,微软的DOS的技术支持已经过期,所以现在处于不支持状态。尽管你可能可以在现代的硬件上安装运行DOS,不过出了问题微软是不会帮你的。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月25日 13:54
    版主