Я использую версию cppcheck 1.64 с графическим интерфейсом для статического анализа кода C++-Builde-6. Для экспорта и импорта 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
, это было бы точно правильно, но как это сделать? Включение его исходного определения через include path, похоже, не вариант: затем cppcheck сообщает мне много о заголовках среды VCL Я не могу изменить...
В мануале не описана возможность сделать это, гугл не помогает, в SO нет ответ еще.
В системе отслеживания проблем cppcheck я нашел аналогичную проблему #4707 (Microsoft 'abstract' и 'sealed ' для класса) – cppcheck. Здесь ведущий разработчик предлагает создать файл и (предварительно?) включить его в запуск cppcheck, но я использую версию с графическим интерфейсом, и нет возможности включить один файл. Итак, я попытался добавить директоров в раздел include параметров моего проекта (файл XML), затем я отредактировал соответствующую строку в спецификации файла, но это явно ерунда, потому что этот раздел содержит пути включения .
Что я могу попробовать дальше?