2017-01-13 5 views
0

Для моего клиента я должен был сделать изменение в визуальном базовом 6 приложении, запущенном на компьютере Windows XP.Изменение на Visual Basic 6 application, exe crashes

Это ничего особенного, просто общение с PLC и функция пользовательского интерфейса.

Мои изменения работают абсолютно безупречно в среде разработчика (IDE), но когда я создаю exe, он падает при открытии некоторых форм или нажатии некоторых кнопок. Некоторые вещи работают, и некоторые вещи выходят из строя.

Компилятор в разработке не дает никаких ошибок даже после полной компиляции!

Я нашел некоторые «ошибки», итерации кода, и это действительно просто удаление некоторых переменных. (что уже существует + Это не программируемая ошибка). Компилятор не дает ошибку, только EXE падает на нем.

Пример из жука, который разбился:

sub On form_load() 

    Some code 

Global_String_Variabel = "Something" 

    some code 

End sub 

Удалив глобальную переменную строку только в таком виде, он не врезаться больше.

Это странно, потому что этот мир кода уже существует, отлично работает в разработке, но не в EXE-файл

Есть ли у кого-либо идеи, почему это могло произойти?

+1

Пожалуйста, отредактируйте ваш вопрос, чтобы включить сообщение об ошибке, которое вы получаете, и соответствующий код. – Filburt

+0

Я не получаю сообщение об ошибке, просто пустой экран. –

+0

Тот факт, что программа, которая правильно компилирует сбои во время выполнения, сама по себе не удивительна. Компилятор не может предвидеть все, что может произойти во время выполнения. – DaveInCaz

ответ

0

Если я правильно понимаю ваш вопрос, программа запускается на вашей машине разработки как в среде IDE, так и скомпилирована в обоих состояниях с назначением строки и без нее, но работает только на машине клиента. Что-то подобное случилось со мной много лет назад, и хотя это может быть не ваша проблема, вы, по крайней мере, сможете это исключить. У клиента может быть антивирус, который ошибочно считает, что сегмент вашего кода является вредоносным программным обеспечением. Просто добавив еще одну строку, такую ​​как x = x или что-то еще, доброкачественное может иногда ее исправить.

Возможно, вам также придется искать другие отличия, как и другие вещи, которые у них есть/работают, которых нет.

Не то, чтобы это имело значение, но вы где-то объявляете переменную и используете Option Explicit?

+0

Спасибо за ответ! Я проверил его с моим клиентом, и не было брандмауэра и virusscanner, поскольку evrything работает локально и не подключается к интернету. Когда я начал с проекта, я добавил опцию явным. –

Смежные вопросы