2009-08-05 13 views
0

私は、WindowsアプリケーションとSymbianで使用されるC++ライブラリを作成しようとしています。 Linuxは現在の要件ではありませんが、一般的には可能なはずです。
このような理由から、Symbian'sの代わりにSTL/Boostの命名規則を使用したいと思いますが、これは慣れるのが難しいと思います。
これは、Carbide.C++を使用してコードをコンパイルするときにSymbian命名規則を適用するため、すでに問題があるようです。Symbianの命名規則を回避するにはどうすればよいですか?

「通常の」名前を使用しても、Symbianとの互換性を維持するにはどうすればよいですか? 私は最初Symbianプラットフォームのクラス名を条件付きで再作成することを考えましたが、混乱を招く恐れがあります。

Symbianの命名規則に準拠しないと他の問題が発生する可能性がありますか?

+1

これはどのような慣行ですか?クラス名の先頭がCで始まる場合、それはかなり偽であり、それをオフにできない場合は、Carbideを使用しないでください。独自のmmpファイルを作成する必要がありますが、それは世界の終わりではありません。関数を残しているだけの場合は、それは正しいです、クロスプラットフォームのクライアントAPIは残してはいけませんか?あるいは、「この機能はSymbianに任せられますが、Windows上では例外がスローされます」と文書化されますか?私はそれが悪い考えだと思います:振る舞いが異なる場合は、あなたのライブラリに2つのインターフェースを提供するだけです。 –

+0

実際に私はそれが強制する慣習を知らない。私の同僚、それはSymbian固有のものをするでしょう、私たちは大会に従うことを勧めました、または奇妙なことが起こるかもしれません。彼はSymbianの専門家でもない。 Symbian上ですでに動作しているコードを再利用しようとしており、他の場所でも使用できるようにしています。 – foraidt

答えて

4

コーディング規則は厳密ではありません。彼らは人間のためにコードを理解しやすくするためにそこにあります。マルチプラットフォームのライブラリを作成している場合は、快適なコンベンションを自由に使用してください。

もちろん、ライブラリは基本的なオペレーティングシステムといくつかのやり方でやり取りする必要があります。 Open C/C++ librariesの助けを借りて、ネイティブのSymbian C++ APIとその命名規則を使用することなく、多くのことを行うことができます。

Carbide.C++では、CodeScannerの静的解析を無効にすることができます。これは、実際のSymbian C++で記述されたコードにのみ有効です。次のように

だから要約すると、問題は次のとおりである:ネイティブのSymbian C++の背景から来

  • 人々は、ネイティブのSymbian C++ APIを使用して、あなたの規則
  • と、すぐに慣れていないいくつかのプラットフォーム固有の特殊性を公開することができます(トラップハーネス、アクティブスケジューラなど)
  • CodeScannerなどのSymbian固有のスタティックアナライザは、Symbian C++コードスタイルを前提としており、気にする必要のないエラーや警告を生成する可能性があります。
関連する問題