Я пытаюсь связать строки xmlChar *, чтобы добавить ".rels" в имя файла. По некоторым причинам я вижу ошибки:
- Ошибка инициализации c2440 не может преобразовать из const char [6] в const xmlChar *.
- Const_cast может только корректировать классификаторы типов; он не может изменить базовый тип.
xmlChar определяется из xmlstring.h, libopc/libxml2, так как я знаю, что не все знают о xmlChar.
xmlChar * temp = c->part_array[i].name; //this is a filename.doc with path, has no compile error
const xmlChar* temp2 = const_cast<xmlChar*>(".rels"); //"rels" here has error
xmlStrcat(temp, temp2);
xmlStrcat хочет xmlStrcat (xmlChar * cur, const xmlChar * add), который, как мне кажется, у меня есть, как только я получу temp2, чтобы быть счастливым.
Есть идеи? У меня возникли проблемы с поиском примеров xmlChar *, где он был подобран таким образом. Я пробовал использовать только:
const xmlChar* temp2 = ".rels";
но получите ошибку:
ошибка c2440 инициализация не может преобразовать из const char [6] в const xmlChar *
Прямое кастинг работал для меня:
Мне пришлось использовать xmlStrndup и xmlCharStrndup
xmlChar * temp = xmlStrndup(c->part_array[i].name, max_part_name);
const char* tempA = ".rels";
xmlChar* temp2 = xmlCharStrndup(tempA, sizeof(tempA));
xmlStrcat(temp, temp2);
const xmlChar* temp3 = (const xmlChar*)temp;