Аватар для Mikle Quits
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 399

Странное поведение VB6 IDE

04.12.2024, 10:37. Показов 927. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть у меня один проект, в котором IDE ведёт себя очень странно:

1. При остановке по ошибке или с помощью точки останова IDE не получает фокус, остаётся в фокусе окно программы. Я его не делал Always on top.
2. С помощью Alt-Tab удаётся переключиться на IDE, но Immediate Window не работает, в него бесполезно жать мышкой, там невозможно ничего напечатать. По F5 работа продолжается.
3. В некоторых местах программы точки останова вообще не срабатывают, то есть это место выполняется, это видно по результату работы, но выполнение программы не прерывается.


В программе, из нестандартного, применяются SetWindowLong и SetClassLong, это для устранения реакции на даблклик, но я комментировал эти строки, они не влияют.
Другие проекты работают стандартно. Пробовал на разных Windows, от XP до 10, симптомы одни и те же.
Понимаю, что в таком случает мне бы урезать проект до места, которое и вызывает такое поведение, чтобы легче искать проблему, но это довольно сложно - большой проект с кучей взаимосвязей.
Может, кто сталкивался с подобным?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.12.2024, 10:37
Ответы с готовыми решениями:

[VB6] IDE issue
Вопрос по глюку IDE, а именно случайным образом при запуске отсутствуют некоторые иконки в тулбаре. Постоянно лечу сбросом тулбара...

Где в VB6 хранится файл настроек IDE?
Например, цвета операторов. Отличается ли местонахождение настроек в установленной версии и портируемой?

IDE VB6 Закрывается при попытке открыть дизайн формы
Доброго времени суток всем Столкнулся с проблемой и даже не знаю как подступиться. Установил VB6 на Windows 10pro 64 с трудом продрался...

19
sleep
 Аватар для I can
4920 / 4565 / 839
Регистрация: 13.04.2015
Сообщений: 9,714
04.12.2024, 10:41
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Странное поведение
Может хуки какие есть в программе?
0
 Аватар для Mikle Quits
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 399
04.12.2024, 10:53  [ТС]
I can, хуков нет. Есть DirectX через tlb от TheTrick, которую я использую постоянно без каких-либо проблем.
0
Модератор
10047 / 3893 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
04.12.2024, 11:22
SetClassLong влияет до следующего перезапуска среды.
0
 Аватар для Mikle Quits
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 399
04.12.2024, 11:31  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
SetClassLong влияет до следующего перезапуска среды.
Закомментировал все SetClassLong, включая декларацию. Сохранил проект, закрыл IDE, снова загрузил проект - не помогло.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
04.12.2024, 12:28
в твинбейсике попробуйте может там не будет глючить

Добавлено через 6 минут
У меня в VB6 бывали глюки и похлеще кстати, особенно когда много субклассирований всяких, то там вообще начинается просто непредсказуемое поведение потом. Например у меня бывало что среда работает-работает, я пишу код в IDE а потом вдруг бац, через минуту или через две, и kill process вдруг ни с того ни с сего, не всегда успевал сохранить код)))) и при чём всегда по разному киллпроцессило))))
0
1384 / 838 / 91
Регистрация: 08.02.2017
Сообщений: 3,512
Записей в блоге: 1
04.12.2024, 12:38
В vba точки останова плохо работают, когда код в объектном модуле там приходится использовать либо stop либо обработчик ошибок (On Error Goto.. ). А если в обрабочкие ошибок поствить MsgBox, то будет гарантированная остановка.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
04.12.2024, 12:52
Цитата Сообщение от testuser2 Посмотреть сообщение
точки останова
а я ими вообще никогда не пользуюсь)

Добавлено через 37 секунд
Цитата Сообщение от testuser2 Посмотреть сообщение
поствить MsgBox
я так обычно и отлаживаю MsgBox'ами кстати)))
0
1384 / 838 / 91
Регистрация: 08.02.2017
Сообщений: 3,512
Записей в блоге: 1
04.12.2024, 13:18
Цитата Сообщение от HackerVlad Посмотреть сообщение
а я ими вообще никогда не пользуюсь)
Но это же очень просто - щелкаешь слева от строки и точка останова, или строчить MsgBox. Бывают некоторые обекты как бы неправильно возвращают управление в код. Допустим Html-dom (или htmldocument, не помнюточно). Вызываешь метод этого объекта, то после этого в коде уже не работают точки останова, но если после него поставить stop, то, пройдя этот stop, вроде бы дальше уже нормально работает.
0
sleep
 Аватар для I can
4920 / 4565 / 839
Регистрация: 13.04.2015
Сообщений: 9,714
04.12.2024, 13:22
Цитата Сообщение от HackerVlad Посмотреть сообщение
я так обычно и отлаживаю MsgBox'
Но ведь в локальных намного удобнее смотреть значения.

Добавлено через 9 секунд
Хотя, опять же - кому как...
0
Модератор
10047 / 3893 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
04.12.2024, 13:31
Mikle Quits, без демо проекта тут не смогу подсказать. Мб потоки есть? SP6 стоит?
0
 Аватар для Mikle Quits
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 399
04.12.2024, 14:24  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Мб потоки есть? SP6 стоит?
Потоками не балуюсь, SP6 на 10-ку ставиться не хочет, но на XP, где тоже проверял, стоит.
Я, всё-таки, локализовал проблему - опять виноват DirectSound. Раньше он позволял приостанавливать программу, выполнять любые действия, а крашил IDE только при экстренном завершении программы без корректного уничтожения всех его объектов. А в этом проекте он почему-то ведёт себя так.
0
Модератор
10047 / 3893 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
04.12.2024, 17:13
Mikle Quits, может такое быть если callback вызывается.
1
 Аватар для Mikle Quits
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 399
04.12.2024, 17:43  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
может такое быть если callback вызывается.
Нет, без колбэков. При старте создаются буферы, по ходу игры проигрываются (Play), при корректном завершении выгружаются. Всё.
0
Модератор
10047 / 3893 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
04.12.2024, 20:21
Mikle Quits, попробуй поменять очередность удаления объектов.
0
 Аватар для Mikle Quits
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 399
04.12.2024, 20:56  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
попробуй поменять очередность удаления объектов.
А как это поможет? DirectSound создаёт проблемы не при завершении, а при останове программы, объекты в этот момент даже не начали удаляться. Я жму F5, и программа корректно продолжается, потом корректно штатно завершается. А вот отладки нет, пока работает DirectSound.
0
Модератор
10047 / 3893 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
04.12.2024, 21:17
Цитата Сообщение от Mikle Quits Посмотреть сообщение
А вот отладки нет, пока работает DirectSound.
А в качестве SetCooperativeLevel какой HWND передаешь?
0
 Аватар для Mikle Quits
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 399
04.12.2024, 22:21  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
А в качестве SetCooperativeLevel какой HWND передаешь?
HWND своей формы, на которую и рендер идёт, с которой и события управления ловлю.
0
Модератор
10047 / 3893 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
04.12.2024, 23:48
Лучший ответ Сообщение было отмечено Mikle Quits как решение

Решение

Mikle Quits, если на десктопное окно сделать - будет ли баг?
0
 Аватар для Mikle Quits
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 399
05.12.2024, 09:21  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
если на десктопное окно сделать - будет ли баг?
А вот это помогло! Причём, исчез и старый баг - при экстренном завершении программы IDE не рушится.
Какие могут быть подводные камни у этого, кроме того, что при потере фокуса программа продолжит звучать?
Ещё интересно, при получении контекста окна рабочего стола достаточно в качестве hWnd подставить "0": GetDC(0). А в DirectSound это не срабатывает, передаю GetDesktopWindow.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2024, 09:21
Помогаю со студенческими работами здесь

Странное поведение .Find
Імеется табліца в экселе... в 7-м столбце - разные значенія... есть EF, дня конкретікі - с первой по 76 стрку, дальше - MBF і так далее......

Странное поведение форм
Может кто нибудь прояснить следующую ситуацию? Случай 1: Возьмем две формы. Form1, Form2 На первой форме поместим кнопку. На...

Странное поведение контрола dbgrid
С некоторых пор на одном из ПК заметил странность - в "сетке" перестали отображаться данные, хотя им так 100% присутствуют (см. 2 рисунка)....

Контроль длины Label. А также VB6 Portable vs VB6 Installed.
Исходя из заголовка темы, вопроса 2: 1.) Как определить, что в Label уже не хватает места для Caption? Длина букв разная. Например,...

Windows 2000 Rus VB6, VB6 Resource Editor отсутствует
В Windows 2000 Rus + SP3 проинсталлировал Visual Studio 6 + MSDN Full (вся студия на 6 CD-R). В VB6 “Add-In Manager” всего три компонента,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru