2012-05-09 8 views
0

私はクロスプラットフォームオープンソースプロジェクトに取り組んでいます。私のアプリケーションは、Android、iOS、MAC OS X、Windows、Linuxをサポートする予定です。異なるオペレーティングシステムとプラットフォームの検出

最初のアイデアは、次のコードを使用することです:

Environment.OSVersion.Platform 

をしかし、私はiOSとAndroidのをカバーすることはできませんので、それは十分ではありません。 OSの種類やOSのバージョンを確認する方が良いと思います。例えばiOSはUNIXベースのオペレーティングシステムです。バージョンやその他のプロパティを確認して、iOSであることを確認することができます。

私はAndroidやiOSにアクセスできないため、検索がうまくいかなかったため、これらのバージョンを各OSに適用するには、あなたの助けが必要です。

敬具、 Peyman Mortazavi

答えて

4

これはどう?

public static bool IsAndroid { 
    get { 
     return (Type.GetType("Android.Runtime") != null); 
    } 
} 

、おそらく:

public static bool IsIphoneOS { 
    get { 
     return (Type.GetType("MonoTouch.Constants") != null); 
    } 
} 

それらは私がAndroid向けMonoTouchで、Monoの上の作業だけを想定しますが、同じアプローチを使用することができます。どちらか、またはビルドプラットフォームの正しい#define値に頼ってください。

-1

私は私のためにこれをしなかった、クロスプラットフォームの機能を大好きです。現在、ifdefsを使って関数を作成し、それぞれのプラットフォームAPI呼び出しを呼び出す必要があります。明らかに

#ifdef Q_WS_MACX 
return "MAC"; 
#else 
return "LINUX"; 
#endif 

私はC++ Qtの中でこれを行う

関連する問題