有关Windows版本的宏
来源:互联网 发布:mackeeper mac破解版 编辑:程序博客网 时间:2024/05/07 07:46
原文:http://msdn2.microsoft.com/en-us/library/aa383745.aspx
标题:Using the Windows Headers
The header files for the Windows API enable you to create 32- and 64-bit applications. They include declarations for both Unicode and ANSI versions of the API. For more information, see Unicode in the Windows API. They use data types that allow you to build both 32- and 64-bit versions of your application from a single source code base. For more information, see Getting Ready for 64-bit Windows. Additional features include Header Annotations and STRICT Type Checking.
Microsoft Visual C++ includes copies of the Windows header files that were current at the time Visual C++ was released. Therefore, if you install updated header files from an SDK, you may end up with multiple versions of the Windows header files on your computer. If you do not ensure that you are using the latest version of the SDK header files, you will receive the following error code when compiling code that uses features that were introduced after Visual C++ was released: error C2065: undeclared identifier.
Conditional Declarations
Certain functions that depend on a particular version of Windows are declared using conditional code. This enables you to use the compiler to detect whether your application uses functions that are not supported on its target version(s) of Windows. To compile an application that uses these functions, you must define the appropriate macros. Otherwise, you will receive the C2065 error message.
The Windows header files use macros to indicate which versions of Windows support many programming elements. Therefore, you must define these macros to use new functionality introduced in each major operating system release. (Individual header files may use different macros; therefore, if compilation problems occur, check the header file that contains the definition for conditional definitions.) For more information, see Sdkddkver.h.
The following table describes the preferred macros in use by the Windows header files.
The following table describes the legacy macros in use by the Windows header files.
WINVER>=0x0600 Windows Server 2003_WIN32_WINNT>=0x0502
WINVER>=0x0502 Windows XP_WIN32_WINNT>=0x0501
WINVER>=0x0501 Windows 2000_WIN32_WINNT>=0x0500
WINVER>=0x0500 Windows NT 4.0_WIN32_WINNT>=0x0400
WINVER>=0x0400 Windows Me_WIN32_WINDOWS=0x0500
WINVER>=0x0500 Windows 98_WIN32_WINDOWS>=0x0410
WINVER>=0x0410 Windows 95_WIN32_WINDOWS>=0x0400
WINVER>=0x0400 Internet Explorer 7.0_WIN32_IE>=0x0700Internet Explorer 6.0 SP2_WIN32_IE>=0x0603Internet Explorer 6.0 SP1_WIN32_IE>=0x0601Internet Explorer 6.0_WIN32_IE>=0x0600Internet Explorer 5.5_WIN32_IE>=0x0550Internet Explorer 5.01_WIN32_IE>=0x0501Internet Explorer 5.0, 5.0a, 5.0b_WIN32_IE>=0x0500Internet Explorer 4.01_WIN32_IE>=0x0401Internet Explorer 4.0_WIN32_IE>=0x0400Internet Explorer 3.0, 3.01, 3.02_WIN32_IE>=0x0300
Note that some features introduced in the latest version of Windows may be added to a service pack for a previous version of Windows. Therefore, to target a service pack, you may need to define _WIN32_WINNT with the value for the next major operating system release. For example, the GetDllDirectory function was introduced in Windows Server 2003 and is conditionally defined if _WIN32_WINNT is 0x0502 or greater. This function was also added to Windows XP SP1. Therefore, if you were to define _WIN32_WINNT 0x0501 to target Windows XP, you would miss features that are defined in Windows XP SP1.
You can define these symbols by using the #define statement in each source file, or by specifying the /D compiler option supported by Visual C++. To specify compiler options, go to the Projects menu and click Properties. Go to Configuration Properties, then C++, then Command Line. Enter the option under Additional Options.
Faster Builds with Smaller Header Files
You can reduce the size of the Windows header files by excluding some of the less common API declarations as follows:
- Define WIN32_LEAN_AND_MEAN to exclude APIs such as Cryptography, DDE, RPC, Shell, and Windows Sockets.
- Define one or more of the NOapi symbols to exclude the API. For example, NOCOMM excludes the serial communication API. For a list of support NOapi symbols, see Windows.h.
- 有关Windows版本的宏
- 有关Windows版本的宏
- 有关Windows版本的宏
- 有关Windows版本的宏
- 有关windows的多线程
- 进程有关的windows api
- 有关检测浏览器的版本的代码
- Android 编译有关gcc版本的问题
- 有关unity版本对oculus的影响
- 初学者有关Hadoop版本选择的考虑
- 有关于caffe版本的介绍
- Windows的版本定义
- Windows 2000的版本
- Windows ce的版本
- Windows 2003的版本
- Windows NT的版本
- sdk的windows版本
- windows版本的getopt
- SQL存储过程参数问题
- 如何使你的MFC程序拥有XP风格
- HQL检索方式、QBC检索方式、SQL检索方式
- HQL检索方式、QBC检索方式、SQL检索方式
- HQL检索方式、QBC检索方式、SQL检索方式
- 有关Windows版本的宏
- Using Eclipse to compile Android source code
- 转:MySQL 备份和恢复
- 记录窗口的位置和大小
- Bring your Android device up
- 如何设置应用程序窗口的初始大小和位置
- sql 行专列 列转行 普通行列转换
- SQL中Case的使用方法
- shell操作mysql