Не экспортирует в Pdf на Windows 7

отредактировано 01:51 Раздел: FastReport 4.0
Добрый день. При экспорте в PDF на Windows 7 появляется ошибка Access Violation. На Windows XP все отлично экспортируется. С чем может быть связана ошибка?

Комментарии

  • отредактировано 01:51
    P.S. в TIFF экспортирует без проблемм. Другие форматы кроме PDF и TIFF не проверял. Видимо что-то именно с PDF...
  • отредактировано 01:51
    Можно посмотреть fp3 файл на котором получается AV?
  • отредактировано May 2011
    Да, вот он.
    Думал, что это со всеми отчетами ошибка, но оказалось, что простой отчет с пару frxMemoView не выдает ошибок.
    Ктстате, если экспортировать этот отчет без составления и заполнения полей, т.е. просто открыть на предпросмотр, то ошибки не возникает.
  • отредактировано 01:51
    Сделал preview и нажал экспорт в PDF - нормально работает. Как нужно сделать, чтобы получить AV?
  • отредактировано May 2011
    Странно конечно. Никак не могу найти причину возникновения ошибки. Сейчас сделал отдельный проект, в нем таблица с простейшими данными, остальные данные заполнены обычными текстовыми строками "test" - ошибки не появилось. Зато в почти таком же отчете ошибка AV. Сохранил отчет на котором появляется ошибка в fp3-файл. Открываю его в окне предпросмотра, экспортирую в PDF - ошибка.
  • отредактировано 01:51
    У Вас получилось воспроизвести действия у себя, чтобы получилась AV?
  • отредактировано 01:51
    Нет. Может быть так, что PDF экспорт используется несколькими потоками?
  • отредактировано 01:51
    Настройки экспорта стандартные. А как можно узнать, сколькими потоками он экспортируется?

    Для того, чтобы воспроизвести действия, я создал простейшую программу, которая бы запускала предпросмотр. В окне предпросмотра я нажимаю кнопку Open и открываю файл, приаттаченный в 6м сообщении. Делаю экспорт в PDF на Windows 7 - получаю ошибку.

    Скачайте прикрепленный к этому сообщению архив, запустите Project1.exe на Windows 7, откройте файл отчета и экспортируйте в PDF - должна появиться ошибка AV.
  • отредактировано 01:51
    Всё равно не получается сделать AV.
  • отредактировано 01:51
    Draeden, как же все-таки можно вычислить, в чем проблема? Почему на моем компьютере эта ошибка появляется, а на вашем - нет?
  • xlaalaaxlaalaa Минск
    отредактировано May 2011
    Random написал: »
    Draeden, как же все-таки можно вычислить, в чем проблема? Почему на моем компьютере эта ошибка появляется, а на вашем - нет?


    'Random' рекомендую Вам скачать коды библиотеки JCL: JEDI Code Library http://wiki.delphi-jedi.org/index.php?titl...DI_Code_Library
    Там есть замечательный модуль ExceptDlg.pas. Подключите его к своей тестовой программке. Скомпилируйте ее вместе с отладочной информацией. В результате получите более информативное сообщение об Access Violation. Там будет информация стеке в момент падения, вместе со ссылками на конкретные стоки кода которые послужили причиной AV.
  • отредактировано 01:51
    xlaalaa, спасибо за совет. Использую JEDI уже давно, но про такую вещь не знал. Добавил в проект файл ExceptDlg.pas. В главно меню выбрал Project | Insert JCL Debug Data. На пустом проекте все происходит нормально. Странно даже, что ошибка AccessViolation пропала на том проекте, что я приаттачил в сообщении 9. Зато проделав те же действия и в главной программе, в которой возникает ошибка AccessViolation - на этапе компиляции компилер выдает ошибку [Linker Fatal error] Access Violation. Link terminated. Может я не так использую этот модуль? Подскажите как правильно.
  • xlaalaaxlaalaa Минск
    отредактировано June 2011
    Для тестов я не использую пункт "Project | Insert JCL Debug Data" достаточно подключить .pas файл и выбрать пункт "Project \ Options" а там "Linker \ Map file \ Detailed" и "Linker \ Include TD32 debug info"

    JCL Debug Data - в упакованном формате JDBG я обычно приклеиваю к модулям вручную только тогда когда делаю финальную сборку для поставки клиентам. С помощью утилиты MakeJclDbg.exe. Также предварительно отрезаю Борландовую отладочную информацию (TDS) с помощью tdstrp32.exe.

    К стати. Еще есть аналогичная коммерческая библиотека http://eurekalog.com
  • отредактировано 01:51
    написал:
    Draeden, как же все-таки можно вычислить, в чем проблема?
    Сделайте debug-версию программы. В настройках найдите список исключений которые отладчик игнорирует, там должно быть что то вроде EAccessViolation. Сделайте так, чтобы отладчик перехватывал это исключение и запустите программу. Когда возникнет AV, отладчик покажет в коде где оно вызвано.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.