Название: QPrinter падает, пототму что CreateDC вернула NULL Отправлено: Caduceus от Февраль 04, 2011, 14:43 Не понимаю - на Windwows7 падает QPrinter потому что внутри конструктора CreateDC возвращает NULL
Почему так может быть? Название: Re: QPrinter падает, пототму что CreateDC вернула NULL Отправлено: kirill от Февраль 04, 2011, 15:37 Не понимаю - на Windwows7 падает QPrinter потому что внутри конструктора CreateDC возвращает NULL Почему так может быть? Код в студию Название: Re: QPrinter падает, пототму что CreateDC вернула NULL Отправлено: Caduceus от Февраль 04, 2011, 15:44 Так собственно в контсрукторе диалога в самом начале вот это вызываю -
m_printer = new QPrinter( QPrinter::PrinterResolution ); вот тут и падает Пробовал не в самом начале. Пробовал когда уже окно появится - все равно падает Название: Re: QPrinter падает, пототму что CreateDC вернула NULL Отправлено: kirill от Февраль 04, 2011, 15:49 Так собственно в контсрукторе диалога в самом начале вот это вызываю - m_printer = new QPrinter( QPrinter::PrinterResolution ); вот тут и падает Пробовал не в самом начале. Пробовал когда уже окно появится - все равно падает Qt 4.7.1 VS2008 Win7 - имеется несколько принтеров в системе - всё работает. Что то припоминаю было такое на предыдущих версиях Qt если в системе не было установлено принтера. Попробуй так Код
Название: Re: QPrinter падает, пототму что CreateDC вернула NULL Отправлено: Caduceus от Февраль 04, 2011, 16:07 Так он на конструкторе QPrinter падает - у вас это первая строчка
Название: Re: QPrinter падает, пототму что CreateDC вернула NULL Отправлено: kirill от Февраль 04, 2011, 16:09 Так он на конструкторе QPrinter падает - у вас это первая строчка Есть разница между пустым конструктором и конструктором с параметром Название: Re: QPrinter падает, пототму что CreateDC вернула NULL Отправлено: Caduceus от Февраль 04, 2011, 16:12 То же самое
--------------------------- Microsoft Visual C++ Debug Library --------------------------- Debug Error! Program: e:\Projects\__\aaa.exe Module: 4.6.2 File: global\qglobal.cpp Line: 2230 ASSERT: "hdc" in file painting\qprintengine_win.cpp, line 1048 (Press Retry to debug the application) --------------------------- Прервать Повтор Пропустить --------------------------- Название: Re: QPrinter падает, пототму что CreateDC вернула NULL Отправлено: maxxant от Февраль 07, 2011, 00:27 Мои предположения:
1. QPrinter должен создаваться после QApplication. 2. попробовать сначала QPrinterInfo::availablePrinters().count() как писали выше, но только до создания QPrinter, если принтеров нет- можно не создавать. 3. переход на более позднюю версию Qt, например: changes-4.6.3 ... - QWin32PrintEngine * [QTBUG-9938] Fixed a crash on Windows 7 systems with invalid PrinterPorts registry entries. |