我有一个包含此信息的ini文件: 这是我的代码:
#include "stdafx.h"
#include "iostream"
#include <stdio.h>
#include "IniReader.h"
#include "INIReader.h"
using namespace std;
int main(int argc, char * argv[])
{
INIReader reader("C:\SampleFile.ini");
if (reader.ParseError() < 0) {
cout << "Can't load 'test.ini'\n";
return 1;
}
std::cout << "Config loaded from 'test.ini': version="
<< reader.GetInteger("info", "CaptureDuration", -1) << "CaptureDuration"<<"\n"
<< reader.Get("info", "DayStart", `enter code here`"UNKNOWN") << ", email=";
cin.get();
return 0;
}
我还附上了从此链接中找到的INIReader头文件: https://code.google.com/p/inih/source/browse/trunk/cpp/INIReader.h 我希望代码打印整数和从ini文件中获取的字符串值。但是我收到链接器错误。我该如何解决?
Errors:
,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?Get@INIReader@@QAE?AV?$
1>main.obj : error LNK2019: unresolved external symbol "public: int __thiscall INIReader::ParseError(void)" (?ParseError@INIReader@@QAEHXZ) referenced in function _main
@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function _main
1>C:\Users\Owner1\Documents\Visual Studio 2008\Projects\inireader\Debug\inireader.exe : fatal error LNK1120: 4 unresolved externals
我没有看到任何链接到这个项目的lib文件,我应该在哪里获取lib文件?
答案 0 :(得分:1)
LNK2019 通常有以下原因之一:
编辑: 在此特定实例中,您必须将文件 IniReader.cpp 添加到项目中,因为它提供了缺少的功能。
答案 1 :(得分:0)
使用GetPrivateProfileString
和WritePrivateProfileString
等Windows API来读取.ini文件。它工作正常,不需要任何库。我用了几十年。
答案 2 :(得分:0)
最简单的方法是:
inih
的所有文件复制到项目目录(我认为是C:\ Users \ Owner1 \ Documents \ Visual Studio 2008 \ Projects \ inireader) inih
的所有文件拖放到 Visual Studio 2008 中的项目中。错误的原因就像@Mario说的那样。您刚刚编译了cpp文件,但没有编译项目所必需的其他cpp文件。所以你还需要编译inih
中的所有.cpp文件。
注意:我认为您应该阅读this以了解有关C的编译和链接的更多信息。