您好我有2个VC ++解决方案“A”和“B”两者都具有相同的基本代码(具有不同的代码只是几行)(VS2008)。 在这两种使用DXVAHD.h。
dxvahd.h是一个标准的Microsoft头文件。 如果我们打开这个头文件中,我们可以看到有一个条件,如果“ #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
”
我看到,在VC ++解决方案“A”,上述条件#如果陈述是错误的,因此整个dxvahd头文件被灰色&甚至不编译!
而在另一种解决方案“B”,这个条件#如果是真实的,因此没有问题和它的工作的罚款。
任何人都可以请让我知道我怎么在溶液中“A”,其中上述#如果是越来越变灰/编译没有解决这个问题。 PLZ帮我。
提前致谢。
看着winapifamily.h ,你可以看到,这些宏用来确定你有什么平台,什么API的是适合你的平台。
/*
* Windows APIs can be placed in a partition represented by one of the below bits. The
* WINAPI_FAMILY value determines which partitions are available to the client code.
*/
#define WINAPI_PARTITION_DESKTOP 0x00000001
#define WINAPI_PARTITION_APP 0x00000002
/*
* A family may be defined as the union of multiple families. WINAPI_FAMILY should be set
* to one of these values.
*/
#define WINAPI_FAMILY_APP WINAPI_PARTITION_APP
#define WINAPI_FAMILY_DESKTOP_APP (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_APP)
/*
* A constant that specifies which code is available to the program's target runtime platform.
* By default we use the 'desktop app' family which places no restrictions on the API surface.
* To restrict the API surface to just the App API surface, define WINAPI_FAMILY to WINAPI_FAMILY_APP.
*/
#ifndef WINAPI_FAMILY
#define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP
#endif
/* Macro to determine if a partition is enabled */
#define WINAPI_FAMILY_PARTITION(Partition) ((WINAPI_FAMILY & Partition) == Partition)
/* Macro to determine if only one partition is enabled from a set */
#define WINAPI_FAMILY_ONE_PARTITION(PartitionSet, Partition) ((WINAPI_FAMILY & PartitionSet) == Partition)
所以,你的WINAPI_PARTITION_DESKTOP
,如果您是在桌面家庭系统的运行将只设置。
WINAPI_FAMILY取决于目标Windows版本还设置。
见讨论和链接的博客文章系列 。
特别是,如果你不写一个“应用程序”(时间> =运8),则:
宁愿使用标准的Windows _WIN32_WINNT的定义选择正确的Win32 API(即在Windows Store应用程序的使用需要很多的Win32 API是Vista的(为0x0600),Windows 7中(0x0601),或Windows 8(0x0602)版本。
您可以使用WINVER _WIN32_WINNT或 。
文章来源: When does #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) in dxvahd.h Microsoft header file become true