Фон
Я работаю над реализацией горячей замены контроллера в JInput и столкнулся с утечкой памяти. Я добился некоторого прогресса на стороне Java, что описано в этом PR, но, похоже, на стороне C существует давняя проблема, особенно касающаяся создания и уничтожения окон.
Полную информацию о проблеме можно найти здесь.
Описание проблемы
В библиотеке JInput ввод с помощью джойстика в Windows включает создание и удаление окон. Этот процесс обрабатывается собственным кодом C, который можно найти здесь. Проблема возникает, когда я пытаюсь уничтожить эти окна с помощью DestroyWindow. Даже после вызова этой функции скрытые окна продолжают появляться в таких инструментах, как WinLister и Spy++, и накапливаются в памяти, вызывая утечку ресурсов.
Что я пробовал [*]Я попытался обработать все оставшиеся сообщения для окон, прежде чем уничтожить их. [*]Я позаботился о том, чтобы создание и уничтожение выполнялись в одном потоке. [*]Я проверил возвращаемое значение DestroyWindow и убедился, что он не сообщает об ошибках, вызвав GetLastError.
Интересное наблюдение: когда я пытаюсь снова вызвать DestroyWindow с тем же дескриптором, он возвращает код ошибки 1400, указывающий на недопустимый дескриптор.
Устранение неполадок с утечкой памяти в JInput: Windows не уничтожается должным образом ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Устранение неполадок проходов LLVM: устранение ошибок прохода «aa» и «memdep» не найден
Anonymous » » в форуме C++ - 0 Ответы
- 69 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблема AWS Textract OCR: устранение неполадок и устранение ошибок или ограничений OCR
Anonymous » » в форуме Python - 0 Ответы
- 50 Просмотры
-
Последнее сообщение Anonymous
-