2012-08-14 28 views
5

¿Hay una nueva macro para determinar en el código si la aplicación se ejecuta en WinRT? Como estoy trabajando con LoadLibrary, sería grande si hay un macro para reemplazar todas las llamadas a LoadLibrary con uno a LoadPackagedLibrary ...Macro para reconocer WinRT?

Estoy comprensión de la documentación correcta como en lo que puedo cargar cualquier DLL (como se siempre y cuando esté dentro de mi paquete) a través de LoadPackagedLibrary, ¿no? (Y siempre que esa DLL no use API listadas en negro ...)

+0

¿Quieres decir como #if NETFX_CORE ? –

+0

Lo siento, supongo que es para .NET. Tal vez para C++ podrías usar [WINAPI_FAMILY] (http://stackoverflow.com/questions/9509166/what-is-winapifamily-h) –

+0

Bueno, actualmente estoy usando solo material relacionado con LoadLibrary desde . Entonces, a través de '#if WINAPI_FAMILY WINAPI_FAMILY_APP' puedo determinar si estoy o no en WinRT. – MFH

Respuesta

4

recientemente he actualizado a Visual Studio 2012, y creo que encontré la respuesta a mi pregunta: ¿

Dentro de los encabezados de Microsoft Macro WINAPI_FAMILY_PARTITION se utiliza para determinar el "nivel" de la API de Windows. Actualmente existen WINAPI_PARTITION_DESKTOP y WINAPI_PARTITION_APP, por lo tanto, "supongo" que a través de esta macro se puede diferenciar entre el escritorio y Metro ...

Las dos macros dar lugar a otro conjunto de macros: #define WINAPI_FAMILY_APP WINAPI_PARTITION_APP y #define WINAPI_FAMILY_DESKTOP_APP (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_APP). Por lo tanto si se ha definido WINAPI_FAMILY_APP uno debe ser capaz de asumir que se trata de una aplicación de Metro ...

0

Pruebe __WRL_WINRT_STRICT__. No estoy del todo seguro de que sea el correcto, pero si busca en ese archivo, probablemente tendrá lo que desea.

De here y here.

1

Para añadir su contestar, consulte este artículo Dual-use Coding Techniques for Games

En la parte de introducción

Aplicaciones escritos para la Tienda Windows use el Windows Runtime (WinRT) y un subconjunto restringido de Win32 API ubicadas en la familia central API (indicada por WINAPI_FAMILY configurada en WINAPI_PARTITION_APP). aplicaciones de escritorio tradicional Win32 tienen acceso a una familia más grande API de escritorio (indicado por WINAPI_FAMILY establecido en WINAPI_PARTITION_DESKTOP), pero esto está sujeto a varios niveles de soporte operativo requerido para cada función