如何使用libconfini静态回调将值赋给类变量 我在C++中编写一个类,用于读取.ini文件,并将所有的条目填充到私有变量(vector InItAccess)中。然而,在libconfini中,我注意到我们需要实现一个静态回调函数,并使用它的dispatcher从.ini文件中获取每个key=value
通过使用libconfini,我的回调函数如下所示:(请注意,这个回调在tINIParser类中是静态的,它必须符合libconfini的要求!) 现在主要的问题是:如何将分派值存储到解析器类变量中?我收到链接错误和编译错误,例如:如何使用libconfini静态回调将值赋给类变量 我在C++中编写一个类,用于读取.ini文件,并将所有的条目填充到私有变量(vector InItAccess)中。然而,在libconfini中,我注意到我们需要实现一个静态回调函数,并使用它的dispatcher从.ini文件中获取每个key=value,c++,parsing,static,ini,C++,Parsing,Static,Ini,通过使用libconfini,我的回调函数如下所示:(请注意,这个回调在tINIParser类中是静态的,它必须符合libconfini的要求!) 现在主要的问题是:如何将分派值存储到解析器类变量中?我收到链接错误和编译错误,例如: 警告:针对只读部分中的重新定位 在函数“tINIParser::callback(IniDispatch*,void*)”中: 对“tINIParser::iniKeysTemp[abi:cxx11]的未定义引用” 对'tINIParser::iniValuesT
- 警告:针对只读部分中的
重新定位
- 在函数“tINIParser::callback(IniDispatch*,void*)”中:
- 对“tINIParser::iniKeysTemp[abi:cxx11]的未定义引用”
- 对'tINIParser::iniValuesTemp[abi:cxx11]的未定义引用
- 你的问题不是很清楚。但是,库似乎有一个C++类的例子来做更多或更少的你想做的事情(和),为什么不从编辑它开始?
int tINIParser::callback(IniDispatch * dispatch, void * v_other)
{
string data = dispatch->data;
string value = dispatch->value;
// Now to store into
if (dispatch->type==INI_KEY)
{
// I tried this... (iniKeysTemp and iniValuesTemp are private in tINIParser and non-static but I also tried to use static)
iniKeysTemp = data;
iniValuesTemp = value;
// And also this with vectors... (iniKeys and iniValues are private in tINIParser and non-static but I also tried to use static)
iniKeys.push_back(data);
iniValues.push_back(value);
}
return 0;
}