2012-08-14 17 views
5

Czy istnieje nowe makro do określenia w kodzie, jeśli aplikacja działa na WinRT? Ponieważ pracuję z LoadLibrary, byłoby wspaniale, gdyby nie to makro, aby zastąpić wszystkie połączenia do LoadLibrary z jednego do LoadPackagedLibrary ...Makro do rozpoznawania WinRT?

mam zrozumienia dokumentacji, jak w prawidłowy mogę załadować dowolny plik DLL (jak długo jak to jest w moim opakowaniu) przez LoadPackagedLibrary, prawda ?! (Dopóki ta biblioteka DLL nie używa interfejsów API umieszczonych na czarnej liście ...)

+0

To znaczy, jak #if NETFX_CORE ? –

+0

Przepraszam, myślę, że to dla .NET. Może dla C++ możesz użyć [WINAPI_FAMILY] (http://stackoverflow.com/questions/9509166/what-is-winapifamily-h) –

+0

No cóż, aktualnie używam tylko materiałów związanych z LoadLibrary od . Więc przez '#if WINAPI_FAMILY WINAPI_FAMILY_APP' mogę ustalić, czy jestem na WinRT czy nie? – MFH

Odpowiedz

4

ja niedawno zaktualizowany do Visual Studio 2012, i myślę, że znalazłem odpowiedź na moje pytanie:

wewnątrz Microsoft nagłówkami Macro WINAPI_FAMILY_PARTITION służy do określenia „poziomu” WinAPI. Obecnie istnieją WINAPI_PARTITION_DESKTOP i WINAPI_PARTITION_APP, dlatego „odgadnąć”, który poprzez to makro można rozróżnić Desktop i metro ...

dwóch makr prowadzić do innego zestawu makr: #define WINAPI_FAMILY_APP WINAPI_PARTITION_APP i #define WINAPI_FAMILY_DESKTOP_APP (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_APP). Dlatego jeśli WINAPI_FAMILY_APP definiuje jeden powinien być w stanie przyjąć, że jest to aplikacja Metro ...

0

Wypróbuj __WRL_WINRT_STRICT__. Nie jestem do końca pewien, czy to prawda, ale jeśli przejrzysz w tym pliku, prawdopodobnie będzie to, co chcesz.

Od here i here.

1

Aby dodać odpowiedzieć, przeczytaj ten artykuł Dual-use Coding Techniques for Games

W części wprowadzającej

Aplikacje napisane dla Windows Store korzystaj z Windows Runtime (WinRT) i ograniczonego podzbioru interfejsów API Win32 zlokalizowanych w podstawowej rodzinie API (oznaczonej przez WINAPI_FAMILY ustawioną na WINAPI_PARTITION_APP). Tradycyjny Win32 aplikacje biurkowe mają dostęp do rodziny powiększenie pulpitu API (wskazany przez WINAPI_FAMILY ustawiony WINAPI_PARTITION_DESKTOP), ale ten jest przedmiotem różnych poziomów wsparcia OS wymaganych dla każdej funkcji