2013-06-07 2 views
-1

일부 기존 VB6 코드는 64 비트 Windows 7 시스템에서 실행 중이며 이상한 오류가 발생합니다.유형 불일치 VB6 오류 처리

내 코드는 여기 불면 :

:이 오류 처리 위의 코드의 전체 섹션에 의해 precededed됩니다

enter image description here

: 메시지와 함께

enter image description here

On Error GoTo ErrorTrap

ErrorTrap이 위의 For Each 루프입니다.

이 유형이 일치하지 않는 이유는 무엇입니까?

답변

4

MyError는 Variant 형식이어야합니다. VB6 For - Each Variant를 사용하여 열거를 수행해야합니다.

사용

Dim MyError As Variant

대신.

+3

변형으로 디밍은 최후의 수단이어야합니다. 이 DBEngine이 ADODB 연결 인 경우 MyError는 ADODB.Error로 흐리게 표시되어야합니다. 'Dim MyError As ADODB.Error' 이렇게하면 변형에 비해 성능이 향상되고 IntelliSense에 사용 가능한 메서드와 속성이 표시됩니다. – jac

2

코드가 ADO와 관련이 있다면 여기에 설명 된 알려진 VB6 ADO & 승 7 문제 일 수 있습니다. http://social.msdn.microsoft.com/Forums/en-US/windowsgeneraldevelopmentissues/thread/3a4ce946-effa-4f77-98a6-34f11c6b5a13. 이전 플랫폼에서 컴파일 된 VB6 응용 프로그램이 Win 7에서 실행될 때 충돌하거나 이전 플랫폼에서 실행될 때 Win 7 충돌로 컴파일 된 응용 프로그램을 만들 수있는 Win7 Sp1에서 형식 라이브러리가 변경된 것으로 보입니다. 링크 된 기사는 솔루션에 대한 몇 가지 제안을 제공합니다. 가장 쉬운 방법은 소스 코드가 실행 가능할 때 런타임에 바인딩을 사용하도록 전환하는 것입니다.