Я использую sonar-qube 4.5.4 с коммерческим плагином C ++ последней версии.
Для визуального плагина c ++ анализ не выполняется (totalLineOfCode для некоторых исходных файлов равен 0) из-за ошибки анализа некоторых файлов cpp
Вот пример возникшей ошибки:
Parse error in file C:\Users\Administrator\Desktop\metrics.artifacts_Error\dfinstaller\sources\PasswordRecovery\AboutDlg.h at line 7:
7: class CAboutDlg : public CDialogImpl < CAboutDlg >
^
8: {
9: public :
10: enum { IDD = IDD_ABOUTBOX } ;
12: BEGIN_MSG_MAP ( CAboutDlg )
13: MESSAGE_HANDLER ( WM_INITDIALOG , OnInitDialog )
14: COMMAND_ID_HANDLER ( IDOK , OnCloseCmd )
Содержание файла в вопросе:
// aboutdlg.h : interface of the CAboutDlg class
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
class CAboutDlg : public CDialogImpl<CAboutDlg>
{
public:
enum { IDD = IDD_ABOUTBOX };
BEGIN_MSG_MAP(CAboutDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_ID_HANDLER(IDOK, OnCloseCmd)
COMMAND_ID_HANDLER(IDCANCEL, OnCloseCmd)
END_MSG_MAP()// Handler prototypes (uncomment arguments if needed):
// LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
// LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
// LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)
};
Любая помощь для решения проблемы разбора очень ценится.
Задача ещё не решена.
Других решений пока нет …