![]() |
|
![]() ![]() ![]() |
|
zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
Блин - перелопатил весь проект. Я использую графики из QWT. И как только их подключаю - clipboard перестает работать.
Посмотрел исходники - вроде qwt не использует его. Что же он такое может делать ? |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Что значит подключаю? Достаточно линковки с QWT? Или создание какого-то виджета? Вообще, странная проблема, конечно... Прям интересно стало ![]() |
|||
|
||||
zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
||||
|
||||
zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
в общем я так и не понял что происходит, но у меня через 2 часа работы GUI сходит с ума.
Причем память не течет. Единственное что удалось получить - некоторые ошибки при запуске приложения. 1. Qt: Could not initialize OLE (error 80010106) 2. QClipboard::setMimeData: Failed to set data on clipboard () ... 3. Error disconnect to signal |
|||
|
||||
Любитель |
|
||||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Хм.. 80010106? MSDN говорит про это:
Функция OleInitialize инициализирует COM с STA моделью:
Отсюда вывод - где-то у тебя вызывается инициализация COM-системы с заданием многопоточной модели. Осталось выяснить где ![]() Это сообщение отредактировал(а) Любитель - 6.5.2009, 13:03 |
||||
|
|||||
zss |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
блин.... у меня используется библиотека, в которой описаны классы для работы с COM
неужели в этом проблема ? 1. к чему может привести ошибка инициализации OLE для QT ? 2. а подружить их нельзя ? |
||||
|
|||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
А как создаются объекты этого класса? T задаётся когда-нибудь явно?
|
|||
|
||||
zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
||||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Всмысле не вызывается? Если у тебя создаются объекты вышеприведённого класса - то вызывается. Вопрос - с каким аргументом. С тем, что в шаблоне по дефолту стоит - проблем вызвать не должно. Проблема должны появится после COINIT_MULTITHREADED
![]() Qwt, как показала проверка, вообще COM не использует (зачем он ей?). Так что посмотри по всем используемым библиотекам и по твоему коду - где вызывается инициализация COM. Ну, в частности к тому что клипборд работать не будет. STA и MTA в пределах одного процесса - нельзя. Почти никак (создание отдельны длл-ок, и маршалинг данных в/из неё выходит, я думаю, за рамки этого раздела). Для клипборда необходима STA модель. Следовательно лучшим решением будет избавление от мультипоточной COM-модели. |
|||
|
||||
zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
инменно не вызывается. Те классы где этот код используется не создаются. знать бы как ![]() вот output
Это сообщение отредактировал(а) zss - 6.5.2009, 13:32 |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Различные варианты. Например, просто поиск по исходникам ![]() ЗЫ Плагины непричём. Так Qt работает просто. |
|||
|
||||
zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
в общем CoInitialize вызывается только в конструкторе этого класса.
Сделал его не шаблонным и поставил бряк на конструктор. Кроме как конструктору его вызывать некому. Бряк не отработал, а инициализация все-равно нарушена :( Блин... я уже несколько дней убил на это... |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
zss, а ты не можешь проект выложить?
|
|||
|
||||
zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
он очень большой и тянет за собой кучу сторонних библиотек. Я пытался сначала тестовый создать - не получилось добиться такой же ошибки. После попытался с нуля данного проекта отследить когда это происходить - тоже не получилось. Ошибка не систематическая. Проверял все ключи проектов и используемых библиотек - вроде все в порядке Добавлено через 55 секунд QT чтоли переварить... Она коммерческая и я ее не варил |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Ладно, пойдём другим путём
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |