2014-08-29 3 views
2

Я разрабатываю кросс-платформенную библиотеку C++. Я нацелен на WP8 среди других, и мне нужно определить, является ли цель WP8 или Desktop Windows.Как определить WP8 во время компиляции

Установлен ли флаг, предназначенный для целей WP8?

Я думал об использовании _WIN32, но, похоже, он определен на обеих платформах.

ответ

1

Не уверены, если это то, что вы ищете, но если вы делаете/портативные библиотеки Универсального приложения вы можете обнаружить его с помощью


C++

От winapifamily.h

/* 
* When compiling C and C++ code using SDK header files, the development 
* environment can specify a target platform by #define-ing the 
* pre-processor symbol WINAPI_FAMILY to one of the following values. 
* Each FAMILY value denotes an application family for which a different 
* subset of the total set of header-file-defined APIs are available. 
* Setting the WINAPI_FAMILY value will effectively hide from the 
* editing and compilation environments the existence of APIs that 
* are not applicable to the family of applications targeting a 
* specific platform. 
*/ 

#define WINAPI_FAMILY_PC_APP  2  /* Windows Store Applications */ 
#define WINAPI_FAMILY_PHONE_APP 3  /* Windows Phone Applications */ 
#define WINAPI_FAMILY_DESKTOP_APP 100 /* Windows Desktop Applications */ 


// example usage 
#if WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP 
// TODO: 
#endif 

C#

#if WINDOWS_APP 
// TODO 
#endif 

#if WINDOWS_PHONE_APP 
// TODO 
#endif 
+1

Это выглядело многообещающим, но winapifamily.h, похоже, не существует на всех моих системах. У меня VS2012 на другом компьютере win32, который не может найти его – Eric