我正在编写一个库,我想在各种平台的程序中使用它。下面是我如何检测不同版本的Windows:识别窗口的变体
#if defined(_MSC_VER)
#include <winapifamily.h>
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PC_APP)
// Windows PC Store App
#define OS_WINDOWS_STORE
#endif
#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// Windows Desktop App
#define OS_WINDOWS
#endif
#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
// Windows Phone App
#define OS_WINDOWS_PHONE
#endif
#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
// Windows RT Store App
#define OS_WINDOWS_RT
#endif
#elif defined(_WIN32_) || defined(_WIN32)
// Windows Desktop App
#define OS_WINDOWS
#endif
我的理解是WINAPI_FAMILY_PARTITION应设置为桌面任何x86程序,PC_APP在x86 Windows应用商店的应用程序,所以我检查PC_APP桌面前。然后,针对Windows 8 Phone应用程序的PHONE_APP和针对所有应用程序定义的APP,因此我假设其他人都没有成功,我们必须为WinRT应用程序做准备。它是否正确?另外,我相信这个头文件只包含在MSVC的最新版本中,在默认Win32检查之前我应该使用什么截点? 2011年之前的事情够好吗?