私はあなたがいる場所にいます。
コード内に条件がある場合でも、Symbianバージョンをオンにしないでください。将来、新しいバージョンのサポートを追加することや、何らかの形で珍しいハンドセットをカスタマイズすることが難しくなります。
#if S60_3rd_ED
#define CAF_AGENT 1
#define HTTP_FILE_UPLOAD 1
#elif S60_2nd_ED
#define CAF_AGENT 0
#if S60_2nd_ED_FP2
#define HTTP_FILE_UPLOAD 1
#else
#define HTTP_FILE_UPLOAD 0
#endif
#endif
など:代わりに、実際のプロパティは、あなたが頼っている、それらの周りのコードを記述することであり、その後、ないヘッダファイルをインクルードするもの識別する。明らかに、バージョンごとに定義するのではなく、設定ごとに完全に異なるヘッダーを持つように、あるいはあなたに合ったスキームで機能を定義することができます。
S60とUIQの間に共通のUIコードがあるように、継承するUIクラスも定義していました。実際、その製品が何であるかに起因して、UI関連のコードがあまりなかったので、まともな割合が一般的でした。
しかし、他の人が言うように、可能な場合はクラスや関数に変数の振る舞いを振り回し、異なるバージョンをリンクする方が良いです。コメントに応答して
は、[編集:
我々は、解像度に依存して何かを行うことを避けるために、非常に懸命に試みた - 幸い、特定のアプリが、これはあまりにも難しいことはありませんでしたので、私たちの限られたUIはかなり一般的なでした。私たちが画面解像度を切り替えた主なものは、スプラッシュ/背景画像などでした。ビルドファイルを前処理するスクリプトが用意されていました。このファイルは、幅と高さをファイル名splash_240x320.bmpなどに置き換えました。私たちは実際に画像を手で生成しました。なぜなら、さまざまなサイズのものがすべてではなく、画像が頻繁に変更されなかったからです。同じスクリプトは、ビルドファイルの生成で使用されたほとんどの値の#defineを含む.hファイルを生成しました。
これはデバイスごとのビルドのためのものです:画像をサイズ変更するだけの一般的なSISファイルもありましたが、基本デバイスイメージ)、およびサイズ変更イメージは、それを少し下に保つための1つの方法でした。私たちはN92、Z8などで画面の回転をサポートするために、アスペクト比を反転すると同じまたは同様の比率にサイズ変更すると良い結果を得られないため、一部の画像のポートレートおよびランドスケープ版が必要でした...]
ねえ、別のモバイル画面の解像度を扱うあなたのアプローチを教えてもらえますか – ardsrk