| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Xerces не хочет сдаваться... |
| Автор: CyraxZ 18.12.2006, 23:32 |
| Уже две недели копаюсь с Xerces'ом. Никак не могу его заюзать... 1. Сначала скачал (http://xml.apache.org/xerces-c/download.cgi) архив с сырцами xerces-c-current.zip из раздела "Current Source Releases of Xerces-C". Попытался собрать группу проектов .bpg для BCB (как я понимаю, это Borland C++ Builder). Куча ошибок. Попытался собрать проект XercesLib.dll - тоже куча ошибок. Тем не менее, XercesLib.dll собрал, но предварительно пришлось сделать следующее: - исключить из файла проекта XercesLib.bpr файлы XTemplateComparator и XObjectComparator - добавить в проект XercesLib.bpr файл XMLInitializer (т.к. требовался для компиляции другими файлами) - закомментил строку "#include "winres.h" в файле Version.rc (Файл winres.h компилятор находил. Тем не менее, на строке "#include "winres.h" в файле Version.rc выходила ошибка "[RC Error] Version.rc(10)" - что не нравится компилятору - осталось загадкой...) Затем полученную dll'ку и lib-файл попытался заюзать. Кинул к своей проге XercesLib.lib и XercesLib.dll, включил в проект XercesLib. (Все нужные хидеры из сырцов подключил.) Компилю, запускаю. Прога выкидывает исключение EAccessViolation "Access Violation at address ... in module 'XERCESLIB.DLL' " на вызове любой функции из dll... Т.е., возможно, из-за файла Version.rc (инклуд которого я закомментировал) dll'ка скомпилилась или собралась коряво... Была мысль попробовать собрать в Borland Developer Studio, но, думаю, ситуация не изменится... 2. Затем из тех же сырцов попробовал скомпилить проект для Visual C++ 7.1. Поскольку у меня Visual Studio 2005 (8.0), то компилил и собирал в ней (ну, естественно предварительно файлы были переконвертены в 8-ю версию). Компилю - миллион ошибок в файле Version.rc (причём, только в нём)... Тоже была мысль попробовать Visual Studio 2003, но по-прежнему считаю, что ситуация не изменится. Этот хренов Version.rc всё портит... 3. С того же сайта из раздела "Current Binary Releases of Xerces-C (32 bit)" скачал архив с бинарниками xerces-c_2_7_0-windows_2000-msvc_60.zip (который Windows 2000 compiled with MSVC 6.0 SP3), т.к. других вариантов (для BCB, MSVC 7.1 и MSVC 8.0 не было). Там имеются следующие dll'ки: - xerces-c_2_7.dll - xerces-c_2_7D.dll - xerces-depdom_2_7.dll - xerces-depdom_2_7D.dll Чем они отличаются - не знаю (последние две, похоже, урезки) и следующие либы: - xerces-c_2.lib - xerces-c_2D.lib - xerces-depdom_2.lib - xerces-depdom_2D.lib (не понятно, куда 7-ку дели...) Юзаю xerces-c_2_7.dll с xerces-c_2.lib - выходит ошибка: Xerces-C_2.lib contains invalid OMF record, type 0x%02x (possibly COFF) Сконвертил () coff2omf.exe'ом в OMF (lib'у). Юзаю. Ошибки линковщика на всех вызовах функций из dll'ки: Unresolved external вызов_метода_класса referenced from объектник_файла_откуда_вызываются_методы Попробовал заюзать xerces-c_2_7D.dll и xerces-c_2D.lib, сконвертил - та же картина... 4. Взял сырцы. Попробовал подключить только нужные cpp-ники. Никак, поскольку эти нужные cpp-ники юзают хидеры других cpp-ников - и так в геом. прогрессии... Подключил все cpp-ники. Компилю. Ошибка в некоторых хидерах, что инклудится хидер, которого нет. Проверил - в сырцах его действительно нет... (какой именно - не помню, завтра смогу указать конкретно...) 5. Теперь думаю, чего делать дальше... Может, кто-нибудь нормально юзал этот Xerces... Как dll'ку с lib-файлом получали, или где доставали ? Если у кого имеются эти 2 файла (нормальные), просьба кинуть на Cyrax-temp@mail.ru... |
| Автор: bsa 19.12.2006, 17:21 |
| Сделай lib из dll с помощью implib (кажется так зовется). Она входит в поставку BCB. С ней уже проблем быть не должно. |
| Автор: Vyacheslav 21.12.2006, 11:15 |
| - xerces-c_2_7.dll - релиз-версия - xerces-c_2_7D.dll - дебаг-версия xerces-depdom_2.dll - урезанная версия, использующая только DOM-модель |