Witam!
"Przenoszę" program spod code::blocks (linux) na VC++ (windows), ze względu na bibliotekę ExcelFormat.
Po wyeliminowaniu całej masy niedociągnięć, których czepiał się VC zostało mi jedno...
1>Test.obj : error LNK2019: unresolved external symbol "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall YExcel::BasicExcelCell::ConvertCellToString(void)" (?ConvertCellToString@BasicExcelCell@YExcel@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function "void __cdecl BadajArkusz(class YExcel::BasicExcel &,int)" (?BadajArkusz@@YAXAAVBasicExcel@YExcel@@H@Z)
Na pewno ten błąd występuje w mojej funkcji (na code::blocks oczywiście działa...):
void BadajArkusz(BasicExcel &arkusz, int ile_ma_sie_zgadzac)
{
BasicExcelWorksheet *sheet;
int TotalCols, TotalRows, indeks_kolumny_ktora_nie_pasuje;
BasicExcelCell *cell;
sheet = arkusz.GetWorksheet(0);
TotalCols = sheet->GetTotalCols();
TotalRows = sheet->GetTotalRows();
int licznik = 0;
int row, col;
vector<string> vWiersze, vWiersz1, vWiersz2;
vector<int> vNumerWiersza;
string wiersz;
for(row=0; row <= TotalRows; row++)
{
for(col=0; col <= TotalCols; col++)
{
cell = sheet->Cell(row, col);
if(cell->Type() == 1 && cell->GetInteger() < 4) // type == integer ?
{
wiersz += cell->ConvertCellToString();
if(col != TotalCols - 1) wiersz += " ";
}
}
if(!wiersz.empty())
{
vWiersze.push_back(wiersz);
vNumerWiersza.push_back(cell->GetRow());
}
wiersz = "";
}
for(unsigned i = 0; i < vWiersze.size(); i++)
{
for(unsigned j = i+1; j < vWiersze.size(); j++)
{
if(i != j)
{
vWiersz1 = split(vWiersze[i], ' ');
vWiersz2 = split(vWiersze[j], ' ');
for(vector<string>::iterator it_W1 = vWiersz1.begin(), it_W2 = vWiersz2.begin(); it_W1 != vWiersz1.end(), it_W2 != vWiersz2.end(); ++it_W1, ++it_W2)
{
//cout << "Porownuje: " << *it_W1 << " do " << *it_W2 << " w wierszu: " << row << " i " << row2 << endl;
if(*it_W1 == *it_W2)
licznik++;
else
indeks_kolumny_ktora_nie_pasuje = licznik+1;
}
if(licznik == ile_ma_sie_zgadzac)
cout << "Wiersz " << vNumerWiersza[i]+1 << " posiada " << licznik << " tych samych cyfr co wiersz " << vNumerWiersza[j]+1 << " a kolumna to " << indeks_kolumny_ktora_nie_pasuje << endl;
licznik = 0;
}
}
}
}
Proszę o pomoc... Nie wiem gdzie VC ma problem z tym kodem :/