CSDN论坛 > VC/MFC > 基础类

_WIN32_WINNT、_WIN32_WINDOWS这两个宏定义在程序中是如何定义和如何获取的? [问题点数:20分,结帖人lh_lihong]

Bbs2
本版专家分:160
结帖率 100%
CSDN今日推荐
Bbs6
本版专家分:5228
匿名用户不能发表回复!
其他相关推荐
#ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0602这个值会影响某些编译
#ifndef _WIN32_WINNT        // 允许使用特定于 Windows XP 或更高版本的功能。 #define _WIN32_WINNT 0x0501  // 将此值更改为相应的值,以适用于 Windows 的其他版本。 例如下面的如果 _WIN32_WINNT #if (_WIN32_WINNT >= 0x0602) WINBASEAPI BOOL
#define _WIN32_WINNT 0x0500
#define _WIN32_WINNT 0x0500今天写一个函数,用到CoCreateInstanceEx,编译的时候总是为未定义,明明已经加头文件了,真是怒了,用vc也不是一两天了,不会被一个明明存在的函数名却说没有定义憋死吧后来直接到objbase.h中看源码,看到这么一句:#if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // D
关于代码中区分debug与release、32位与64位、xp还是win7编译的宏定义
在写代码的过程中,我们经常需要考虑这样的一些问题:有一部分代码片段只有在32位编译环境下编译才能通过,在64位编译环境下是无法编译通过的,那么怎样才能判断当前编译环境是32位编译还是64位编译?还有,如何判断当前编译是debug编译还是release编译?再者,有些API是在vista之后才出现的,那又该如何区分当前编译环境是xp还是win7? 这里做下备忘,省得忘了之后又要疯狂的google和百
_WIN32_WINNT最新定义
下面是 Windows 10 版 SDKDDKVer.h(它对每个版本的 Windows 的值进行编码)中的行: // // _WIN32_WINNT version constants //  #define _WIN32_WINNT_NT4                    0x0400 // Windows NT 4.0  #define _WIN32_WINNT_WI
在运行时,知道宏定义(字符串)所代表的值(运行时,知道变量名称的一种方法)
#define STYLEITEM(item)  { _T(#item), item }  static STYLEMAPVALUE map[]=  {   STYLEITEM(WS_OVERLAPPED),   STYLEITEM(WS_POPUP),   STYLEITEM(WS_CHILD) } 在预编译的时候,#将item做为了字符串,然后{}中的值item作为了值
Ftxxxx系列------如何在makefile里定义c文件使用的宏
在ftxxxx_ts.c里有用到 #ifdef ZE600KL_HD ftxxxx_ts->x_max=720; ftxxxx_ts->y_max=1280; #endif 这个ZE600KL_HD就是在makefile里定义的 ifeq ($(TARGET_PRODUCT),Z00T) EXTRA_CFLAGS += -DZE551KL_FHD EXTRA_CFLAGS +=
在使用高版本vs 编译MFC的 WINVER and _WIN32_WINNT版本问题
转载:http://msdn.microsoft.com/en-us/library/6sehtctf.aspx Modifying WINVER and _WIN32_WINNT Visual Studio 2010 Other Versions 1 out of 1 rated this helpful Rate this
如何查出某个宏定义在哪个头文件内?
yang@yang:~$ sudo find /usr/include/ -name *.h | xargs grep 'ORIG_EAX' /usr/include/reg.h:# define ORIG_EAX 11 /usr/include/x86_64-linux-gnu/asm/ptrace-abi.h:#define ORIG_EAX 11
linux/windows下获取gcc(mingw)编译器预定义宏的方式
我们在阅读一些源代码时经常发现类似这样的宏WIN32,_WIN64,__x86_64,__linux却找不到在哪里定义的,这些其实是编译器预定义的宏。在不同的操作系统内容不同。 为了知道gcc编译器都预定义了哪些宏, 在window下可以输入如下命令: gcc -posix -E -dM - < nul linux下,命令稍有不同 gcc -posix -E -dM - < /dev/n
VC++使用宏定义来搞定程序的版本集信息
一个很简单的代码 就是在Define.h文件中用一系列宏将versioninfo结构体中信息都定义好 然后在xxx.rc文件中包含Define.h 然后再修改其中的Versioninfo那一段文字(记住用编辑源代码的形式打开,而不是用RC视窗),改完之后也不要再用RC视窗的VersionInfo的表单中做任何的修改 以后程序版本集变动只需要修改Define.h 而且程序中如果有需要获得程序版本集信息的,只须使用Define.h中预先定义好的宏就可以了,而不用去查MSDN去调用一些复杂的API函数来获得版本号等。 具体请看代码,VC2008的工程
关闭