Я пишу программу на Cobol, которая вызывает программу на C ++. Эта программа на c ++ выполняет некоторую проверку XML с использованием Xerces c ++. Когда я пишу отдельную программу на C ++, я не получаю ошибок. Когда я вызываю программу на C ++ из cobol, при вызове метода parse возникает ошибка SAXParser потому что Xerces не может найти файл XML. Внутри программы на c ++ я могу открыть файл, но xerces — нет.
Xerces считает, что путь к XML в стиле OSS /G/vol/subvol/filename
, но это в стиле опекуна vol.subvol.filename
Эта ошибка возникает только тогда, когда я использую Xerces, а не при использовании программы c ++.
Моя отдельная программа на C ++, которая вызывает xerces, работает нормально. У кого-нибудь есть идея, почему возникает эта ошибка и как ее решить?
Я решил эту проблему с помощью InputSource
класс с базовым и относительным путем, как показано Вот. После этого я звоню parser.parse(&inputSource)
и не получить ошибки.
Других решений пока нет …