Задать вопрос
maaGames
@maaGames
Погроммирую программы

Почему WMI блокирует работу drag'n'drop?

Использую WMI для получения данных об оборудовании (испоьзую библиотеку https://github.com/sonodima/wmipp , но это вряд ли имеет значение). По неосторожности не разрушил COM-объект и он оставался существовать всё время жизни программы. По какой-то причине, наличие этого объекта блокирует работу drag'n'drop, объект QDrag создаётся и при запуске exec сразу же прерывается по инвалидности. Если же объект разрушать после получения данных, то перетаскивания работают.
Не понимаю, где тут взаимосвязь и почему так Qt реагирует? В данном случае решение проблемы элементарное (проблему я сам создал по неаккуратности), но в других случаях может получиться, что нельзя COM-объект разрушать.

Кто-нибудь знает, что это такое и как правильно такое обрабатывать?
  • Вопрос задан
  • 375 просмотров
Подписаться 4 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
kkmspb
@kkmspb
хобби C++, Qt, десктоп, микроконтроллеры STM32
Может все-таки нет связи между этими объектами?
Я с WMI тоже постоянно испытываю у пользователей свой программы проблемы.
Могу поделится опытом:
1. Надо конечно отслеживать и правильно обрабатывать получаемые данные от wmi, например с типом VT_NULL.
2. Для приема мы параметра от wmi выделяем буфер памяти с каким-то размером, может размер маловат.
У пользователя моей программы на WinServer2022 сейчас программа падает на wmi, хотя у всех "остальных" работает.
Попробуйте измень последовательность создания своих объектов: WMI и drag&drop, может заметите другое поведение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
OSZAR »