Ошибки компилятора программы Win32 в файле определения класса - PullRequest
0 голосов
/ 26 мая 2011

Я пытаюсь скомпилировать в Visual C ++ и только что добавил этот загрузчик / парсер файла конфигурации в свой проект.Для некоторых когда-либо определенных в классе функций функция CProfileData получает как минимум одну из двух ошибок:

missing type specifier - int assumed.
syntax error : missing ',' before '&'

Когда очевидно, что это должна быть просто строка ссылки

#ifdef UVSS_EXPORTS
#define UVSS_API __declspec(dllexport)
#else
#define UVSS_API __declspec(dllimport)
#endif


class CProfileData
{

public:
    UVSS_API CProfileData(){};
    UVSS_API CProfileData(const string& profileFile);
    UVSS_API ~CProfileData(void);

    UVSS_API bool GetVariable( const string& sectionName, const string& variableName, string& valueRet );
    UVSS_API bool GetSection( const string& sectionName, SECTION_MAP **pMapRet );
    UVSS_API bool GetVariableW( const string& sectionName, const string& variableName, wstring& valueRet );
    UVSS_API bool GetVariableInt( const string& sectionName, const string& variableName, int *pIntRet );

private:
    void ToLower( string& str );
    void TrimWhitespace( string& str);   
    bool IsComment( const string& str );
    bool IsSection( const string& str, string& secName );
    bool IsVariable( const string& str, string& name, string& value );

    PROFILE_MAP         m_mapProfile;

};

Ответы [ 2 ]

6 голосов
/ 26 мая 2011

Включите <string>:

#include <string>

И напишите std::string, где бы вы ни написали string.

Не рекомендуется делать одно из следующих действий в заголовок файл:

using namespace std; //avoid doing this
using std::string;   //avoid doing this as well
3 голосов
/ 26 мая 2011

Убедитесь, что эти две строки появляются перед включением этого заголовка:

#include <string>
using std::string;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...