我正在尝试在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;
};
答案 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;