C++-Builde-6 コードの静的コード分析に cppcheck 1.64 の GUI バージョンを使用しています。DLL のエクスポートとインポートの場合、次の定義PACKAGE
が必要です。
/// A dialog exported from a BPL (a VCL-specific kind of DLL)
class PACKAGE MySharedDialog {
public:
// lots of methods to-be checked
private:
// lots of methods to-be checked
// lots of members
};
Cppcheck は、それPACKAGE
が何を意味するのかわからないため、遭遇すると停止します。
コード「class PACKAGE TAppInfoDialog {」は処理されません。-I または --include を使用して、このコードの処理を追加できます。
...そしてもちろん、これはクラス全体がチェックされていないことを意味します。cppcheckに単にPACKAGE
「キーワード」を無視させることができれば、まったく正しいことを行うことができますが、どのように行うのでしょうか? インクルードパスを介して元の定義を含めることはオプションではないようです.cppcheckは、変更できないVCLフレームワークのヘッダーについて多くのことを教えてくれます...
マニュアルにはそれを行うためのオプションが記載されていません.Googleは助けません.SOにはまだ答えがありません.
cppcheck イシュー トラッカーで、類似の問題#4707 (クラスの Microsoft 'abstract' および 'sealed' 拡張) – cppcheck を見つけました。ここで主任開発者は、ファイルを作成して (事前に?) cppcheck の実行に含めることを提案していますが、私は GUI バージョンを使用しており、単一のファイルを含めるオプションはありません。そこで、プロジェクト オプション (XML ファイル) のインクルード セクションにディレクターを追加しようとしました。次に、対応する行をファイル仕様に編集しましたが、このセクションにはインクルード パスが含まれているため、明らかに意味がありません。
次に何を試すことができますか?