2

私が見つけた最も近いものは次のとおりです。WinRTMetroアプリは相互互換性がありますか(x86 / 64とARM)?

私はまだMetroアプリを開発していませんが、私が理解しようとしていることは、Metroアプリを開発している場合は、WinRT(Windowsランタイム)に対して開発する必要があるということです。これがMetroアプリを作成する唯一の方法であり、JavaScript、C#、またはC ++で行う天気は関係ありません...したがって、すべてARMで動作するはずです...次のようなMetroアプリを作成することは可能ですか? ARMでは動作しませんか?

VLCチームは、Windows8Metro用のVLCプレーヤーを開発するためにKickstarterで資金を調達しようとしています。

http://www.kickstarter.com/projects/1061646928/vlc-for-the-new-windows-8-user-experience-metro

Windows用のVLCメディアプレーヤーは現在、世界中の約1億台のデバイスにインストールされています。既存のバージョンはWindows8のデスクトップモードで実行され、IntelベースのPCでのみ使用できます。この新しいポートは、新しいユーザーエクスペリエンスにネイティブに統合され、今後のリリースでARMベースのタブレットもサポートします。

では、ユーザーエクスペリエンスとネイティブに統合する場合、つまりWindows 8アプリにする場合、そもそもARMチップで機能しないのはなぜでしょうか。

4

3 に答える 3

6

C#Metroアプリを構築するときは、ターゲットプラットフォームとして任意のCPUを選択するだけで(通常はそうします)、3つのプラットフォームすべてに対して単一のパッケージを構築できます。ただし、C ++アプリを開発する場合は、プラットフォームごとに個別にパッケージを作成する必要があります。これは、x86およびARM用にアプリをビルドできるが、x64アーキテクチャ用にはビルドできないことを意味します。このようなアプリを公開すると、x86およびARMユーザーのみが使用できます。もちろん、3つのプラットフォームすべてのサポートは良いことですが、x64とx86専用に構築されたプロジェクトライブラリで使用できます。これにより、そのようなライブラリのARMポートが使用可能になるまで、アプリのARMバージョンを作成できなくなります。VLCチームがどのライブラリを使用しているかはわかりませんが、そのようなシナリオの可能性は確かに存在します。

于 2012-12-04T15:23:22.413 に答える
3

理論的には、(少なくとも C# および C++ プログラムでは) 「サポートされていない」Win32 API 関数を呼び出すことができます。つまり、この関数はおそらく Windows RT では動作しません。ほとんどの場合、それらは完全な Windows 8 で動作します (ただし、呼び出されると例外が発生するものもあります)。例として、完全な Windows で機能する GetVersionEx 関数がありますが、認証に失敗し、おそらく Windows RT では使用できません。

ストアをスキップして Windows 8 に Windows ストア アプリをインストールすることは (まだ簡単ではありませんが) 可能であるため、サポートされていない機能を使用することが理にかなっている場合があります。ただし、ストアなしでARMデバイス(Windows RT)にWindowsストアアプリをインストールできるとは思えません。アプリをストアに配置するには、ARM デバイスで実行されない Windows ストア アプリを持つ証明書が必要であるため、理論的です。もちろん、認定によってアプリが Windows RT で実行できることが保証されると仮定すると、それは当然のことです。

于 2012-12-05T13:01:04.950 に答える
1

VLC プロジェクトに関しては、アセンブリ コードまたはその他の低レベル機能 (おそらく GPU アクセラレーション) を使用する特殊なデコーダ コードがあり、これらを適応させる必要があると思います。

「通常の」C++ コードもすべてのプラットフォームでコンパイルする必要がありますが、@ie. プラットフォームごとに個別の構成をセットアップする必要があります。

于 2012-12-04T16:42:34.577 に答える