2012-08-14 21 views
5

アプリケーションがWinRTで実行されているかどうかをコードで確認する新しいマクロはありますか?私はLoadLibraryで働いていたようLoadPackagedLibraryに1でLoadLibraryのすべての呼び出しを置き換えるために、マクロがある場合、それは素晴らしいことだ...WinRTを認識するマクロ?

私は(と任意のDLLをロードすることができるのように私は正しい文書を理解しています私のパッケージの中にある限り)LoadPackagedLibrary経由で、右か? (そして、そのDLLがブラックリストに載っているAPIを使用しない限り...)

+0

各 機能に必要なOSのサポートのさまざまなレベルの対象となります? –

+0

申し訳ありませんが、.NET向けです。たぶんC + +のために使用することができます[WINAPI_FAMILY](http://stackoverflow.com/questions/9509166/what-is-winapifamily-h) –

+0

私は現在、LoadLibrary関連のものだけから使用しています。だから '#if WINAPI_FAMILY WINAPI_FAMILY_APP'を使って私がWinRTにいるかどうかを判断できますか? – MFH

答えて

4

私は最近のVisual Studio 2012に更新され、私は私の質問への答えを見つけたと思う:

マイクロソフトヘッダ内には、マクロWINAPI_FAMILY_PARTITIONはWinAPIのの「レベル」を決定するために使用されます。 #define WINAPI_FAMILY_APP WINAPI_PARTITION_APP#define WINAPI_FAMILY_DESKTOP_APP (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_APP):現在WINAPI_PARTITION_DESKTOPWINAPI_PARTITION_APPしたがって、私は経由して、このマクロ1は、デスクトップとメトロを区別できることを「推測」がある...

二つのマクロは、マクロの別のセットにつながります。 WINAPI_FAMILY_APPが定義されているため場合は、1つは

0

お試し__WRL_WINRT_STRICT__それが正しいとは必ずしも分かりませんが、あなたがそのファイルを見ると、おそらくあなたが望むものがあるでしょう。

hereおよびhere

1

あなたに答えるために、導入部では、この記事Dual-use Coding Techniques for Games

を参照してください。

アプリが書かを追加するには...それはメトロアプリだと仮定することができるはずですWindowsストアの場合、Windowsランタイム (WinRT)と、コアAPI ファミリ(WINAPI_FAMILYがWINAPI_PARTITION_APPに設定されていること)にある制限付きWin32 APIのサブセットを使用します。 従来のWin32デスクトップアプリケーションは、より大きなデスクトップAPIへのアクセス 家族(WINAPI_PARTITION_DESKTOPに設定WINAPI_FAMILYで示される)、 を持っているが、これはあなたがの#if NETFX_COREのような意味