2

WinPhone 8 と WinRT の両方を対象とする Visual Studio 2012 C++/CX プロジェクトを作成しました。興味のある方は、ソリューションをここ (Hybrid.zip) からダウンロードできます。

残念ながら、ソリューション プラットフォームでは期待どおりに動作しません。2 つのプラットフォームが正常に動作しています。

  • ソリューション プラットフォームを選択するARMと、ネイティブの ARM WinPhone バイナリがビルドされます。

  • ソリューション プラットフォームを選択するx64と、ネイティブの 64 ビット Windows バイナリがビルドされます。

しかし、私は問題がありWin32ます。Windows Phone SDKWin32は「シミュレーター用の WinPhone x86 バイナリ」として認識Win32されますが、Windows SDK は「Windows x86 ネイティブ バイナリ」として認識されます。同じプロジェクト プラットフォームが 2 つの非常に異なるものに使用されています。

ソリューション プラットフォームを作成してみましたWinPhoneEmu。ただし、2 つの異なるプラットフォーム構成の選択肢があり、期待どおりに動作するプロジェクトプラットフォームを作成する方法がわかりません。どうすればそれができますか?Win32WinPhoneEmu

4

2 に答える 2

0

私の理解が正しければ、この状況では、プラットフォーム (x86、x64、ARM) とターゲット (デバイス、エミュレーター) の両方を手動で選択する必要があります。Visual Studio ツールバーにプラットフォーム セレクターを追加することで簡単に実行できます。ツール -> カスタマイズ -> コマンド -> ツールバー -> 標準、次に「ソリューション プラットフォーム」コマンドを追加します。これは、x86、x64、ARM、任意の CPU などのコンボ ボックスです。 WP8 エミュレータ用の x86 + エミュレータ WXGA、または W8 デバイス用の x86 + デバイス:

私のスクリーンショットを見る

...そして、その後VSでどのように見えるかを次に示します。

ここに画像の説明を入力

于 2013-02-04T11:31:32.117 に答える
0

これは明示的にサポートされていないと確信しています。主な理由は、WinRT と Phone の間の XAML 構文は似ていますが、完全には互換性がないためです (phone は Silverlight 風で、WinRT は奇妙な新しいものです)。

両方を対象とする最善の方法は、合計 3 つのプロジェクトを用意することです。

  1. Phone と WinRT を対象とする移植可能なクラス ライブラリで、すべてのロジックが使用されます
  2. PCL にリンクする WinRT の UI レイヤー
  3. PCL にリンクする電話用の UI レイヤー
于 2013-02-04T01:23:27.653 に答える