Я думаю, что вы путаете себя со всеми различными переменными, называемыми 'doc', тем или иным.
thisDoc->file1 = getElementText(pRoot- >FirstChildElement("model"));
const char *file1 = Doc.file1.c_str();
очевидно, должно быть это
thisDoc->file1 = getElementText(pRoot- >FirstChildElement("model"));
const char *file1 = thisDoc->file1.c_str();
И это
struct Document{
std::string file1;
std::string file2;
std::string file3;
std::string file4;
}Doc;
должно быть этим
struct Document {
std::string file1;
std::string file2;
std::string file3;
std::string file4;
};
Если вы действительно не хотели объявить глобальную переменную с именем Doc
.Если вы это сделали, то это плохая идея.
Хороший выбор имени переменной важен, это действительно так.