Меня попросили решить проблему использования памяти приложения CAD, написанного на Visual C ++, которая возникает при попытке экспортировать чертеж в PDF3D.
Функция экспорта работает хорошо для простых моделей или только частей сложной модели, но не для всей сложной модели.
Мы используем проект sourceforge U3D для создания объекта U3D; после того, как мы вставим его в PDF. Проблематично создать деталь, создающую объект.
Проект sourceforge U3D - это библиотека, построенная на C ++ для использования в C ++, которая устарела с 2007 года, имеет плохую документацию и коллекции ее примеров далеко не достаточно! В списке TODO проекта также указано, что у него есть проблемы с памятью!
Итак, меня попросили атаковать проблему двумя сторонами:
Выполните обслуживание кода U3D.
Изменить способ взаимодействия приложения с библиотекой U3D.
Они также сказали, что сторона 2. предпочтительнее, так как она находится под нашим контролем.
При попытке решить проблему я получил два вывода:
Я сильно подозреваю, что метод EncodeX U3D отвечает за неправильное использование памяти.
Я перепробовал множество мелких изменений в том, как приложение взаимодействует с библиотекой (изменение параметров сжатия, флагов и т. Д.), И каждый раз, когда результатом было перераспределение памяти.
Так что вопрос: стоит ли продолжать использовать эту библиотеку? Код этого не радость читать ... Или, может быть, было бы неплохо посмотреть на других библиотек с той же целью?
Я их не изучал, но я серьезно думаю о переходе на VCGlib или libharu ... пожалуйста, предложите что-нибудь еще, если вы знаете, что это хорошо.
Другими альтернативами могут быть: использование экспортера визуальных технологий PDF3D, который имеет неприемлемую стоимость, или разработка собственной реализации экспортера U3D, которая имеет недостатки, заключающиеся в очень ограниченном наборе функций U3D, а также он не мог подготовиться к ожидаемому сроку.
Поэтому принимайте эти параметры как запрещенные.
Мне действительно нужна помощь, чтобы решить, что лучше.
Заранее спасибо,
Сержио