2017-01-13 1 views
0

내 고객은 Windows XP 컴퓨터에서 실행중인 Visual Basic 6 응용 프로그램을 변경해야했습니다.Visual Basic 6 응용 프로그램에서 변경, exe 충돌

plc와 통신하고 사용자 인터페이스로 작동하는 것은 특별한 것이 아닙니다.

변경 사항은 개발자 환경 (IDE)에서 완벽하게 작동하지만, 일부 양식을 열거 나 일부 버튼을 누르면 프로그램이 충돌합니다. 어떤 것들은 작동하고, 어떤 것들은 충돌합니다.

개발중인 컴파일러는 전체 컴파일 후에도 오류를주지 않습니다!

코드를 반복함으로써 일부 "버그"가 발견되었으며 이는 실제로 일부 변수를 삭제하는 것입니다. (이미 존재 + 그것은 프로그래밍 가능한 오류가 아닙니다) 컴파일러는 오류를주지 않습니다, 그냥 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

답변 해 주셔서 감사합니다! 고객과 확인한 결과 evrything이 로컬에서 실행되고 인터넷에 연결되지 않았기 때문에 방화벽이 실행되고 virusscanner가 실행되지 않았습니다. 프로젝트를 시작할 때 나는 옵션을 명시 적으로 추가했습니다. –