6

アプリケーションがWinRTで実行されているかどうかをコードで判別するための新しいマクロはありますか?私が作業しているので、すべての呼び出しを1つにLoadLibrary置き換えるマクロがあると便利です...LoadLibraryLoadPackagedLibrary

(パッケージ内にある限り)任意のDLLを(パッケージ内にある限り)ロードできるので、ドキュメントが正しいことを理解していますよねLoadPackagedLibrary?!(そして、そのDLLがブラックリストに登録されたAPIを使用しない限り...)

4

3 に答える 3

5

最近VisualStudio2012に更新しましたが、質問に対する答えが見つかったと思います。

Microsoftヘッダー内では、マクロWINAPI_FAMILY_PARTITIONはWinAPIの「レベル」を決定するために使用されます。現在、がWINAPI_PARTITION_DESKTOPありWINAPI_PARTITION_APP、したがって、このマクロを介してデスクトップとメトロを区別できると「推測」します...

2つのマクロは、別のマクロのセットにつながります:#define WINAPI_FAMILY_APP WINAPI_PARTITION_APP#define WINAPI_FAMILY_DESKTOP_APP (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_APP)。したがって、WINAPI_FAMILY_APPが定義されている場合、それはメトロアプリケーションであると想定できるはずです...

于 2012-08-30T23:08:09.457 に答える
2

回答を追加するには、この記事「ゲームのデュアルユースコーディングテクニック」を参照してください。

はじめに

Windowsストア用に作成されたアプリは、Windowsランタイム(WinRT)と、コアAPIファミリにあるWin32 APIの制限付きサブセット(WINAPI_FAMILYがWINAPI_PARTITION_APPに設定されていることで示されます)を利用します。従来のWin32デスクトップアプリは、より大きなデスクトップAPIファミリ(WINAPI_FAMILYがWINAPI_PARTITION_DESKTOPに設定されていることで示されます)にアクセスできますが、これは、各機能に必要なさまざまなレベルのOSサポートの対象となります。

于 2013-06-26T03:42:18.470 に答える
0

試してみてください__WRL_WINRT_STRICT__。それが正しいかどうかは完全にはわかりませんが、そのファイルを調べてみると、おそらく必要なものが含まれているはずです。

ここここから。

于 2012-08-15T04:39:44.507 に答える