类定义文件中的Win32程序编译器错误

时间:2011-05-26 13:48:57

标签: c++ winapi compiler-errors

我正在尝试在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 个答案:

答案 0 :(得分:6)

加入<string>

#include <string>

std::string {。}}的任何地方写下string

标头文件中执行以下任一操作不是一个好主意:

using namespace std; //avoid doing this
using std::string;   //avoid doing this as well

答案 1 :(得分:3)

确保在包含此标题之前出现这两行:

#include <string>
using std::string;