я запускаю приложение в режиме отладки по сравнению с тем, когда я скомпилировал его и запустил на моем
разработка ПК
Когда вы компилируете, у вас есть возможность компилирования в нативный код или pcode. Отладчик работает только с использованием pcode. В редких случаях, когда вы компилируете в нативный код, происходит изменение поведения. Это особенно редко. Я использовал VB6 с момента его выпуска и могу получать его один или два раза в год. Мое приложение - это сложный CAD / CAM, создающий фигуры и работающий металлорежущий станок, и имеющий две дюжины DLL. Не типичная ситуация. Дома с моим программным обеспечением для хобби я никогда не сталкивался с этой проблемой.
Существует еще один класс ошибок, возникающих из-за проблем последовательности событий. Хотя VB6 не является многозадачным, у него есть возможность выпрыгнуть из текущего блока кода для обработки события. Если он снова входит в тот же блок для нового события, могут возникнуть интересные вещи (если не сказать больше). Я думаю, что это вероятный источник ваших проблем, поскольку ваше программное обеспечение является редактором, представляющим собой интерактивный тип программного обеспечения.
Как правило, проблема решается путем изменения порядка областей воздействия. Вы находите нужную область, вставляя MsgBox или записывая в текстовый файл, чтобы войти, где вы находитесь. Я рекомендую войти в текстовый файл, так как MsgBox имеет тенденцию изменять поведение, связанное с синхронизацией или многозадачностью.
Помните, что если событие инициируется, когда VB6 находится в середине блока кода и там плавает DoEvents, то он покидает блок кода, обрабатывает событие и возвращается к исходному блоку кода. Если он снова входит в тот же блок кода, и вы не хотели, чтобы это произошло, у вас будут проблемы. И у вас будут разные проблемы на разных компьютерах, так как время будет отличаться для каждого.
Самый простой способ справиться с этим типом проблем - создать несколько переменных-флагов. На многозадачном языке они известны как семафоры или мьютексы. Когда вы вводите критический раздел кода, вы устанавливаете его в true. Когда вы выходите из рутины, вы устанавливаете ее в false. Если это уже верно, когда вы вводите этот раздел кода, вы не выполняете его.
когда я установил его на другой компьютер.
Обычно это результат неправильной установки DLL. Скорее всего, у вас более старая версия, а у целевой - более новая. Я бы скачал бесплатный Virtual PC и создал бы чистую установку Windows XP, чтобы дважды это проверить.
Если ваша проблема связана с синхронизацией событий, это также может отличаться на разных компьютерах. Это обнаруживается путем регистрации подозрительных областей (не MsgBox).
Если вы можете отобразить снимок экрана или текст ваших конкретных ошибок, тогда я могу помочь вам лучше.