2011-02-10 7 views
3

리얼 플레이어 파일 지속 시간을 읽은 다음 타이머로 설정해야하는 프로그램을 개발 중입니다. 인터럽트, 프로그램을 디버깅 할 때 오류는 없지만 언제 발생합니까? attemping 파일의 길이를 얻으려면이 오류가 발생합니다 : System.Windows.Forms.Axhost+InvalidActiveXState exception. AxRealAudioObjects.dll이라는 어셈블리를 사용하고 있는데 버전은 2.0입니다. NET 2.0에서는 잘 작동했지만 .NET의 현재 버전이 4.0이기 때문에이 오류가 발생합니다. DLL이 손상되었거나 다른 것입니까?System.Windows.Forms.Axhost + InvalidActiveXState 예외 처리 방법

+3

디자이너와 함께 컨트롤에 컨트롤을 놓았습니까? ActiveX 컨트롤에 필요합니다. –

+0

@ 한스 : 나는하지 않았다. 코드는 다음과 같습니다 :'AxRealAudio file = new AxRealAduio(); 'File.Source = @ "C : \ 1.rm"; "에러는 여기에옵니다 :'MessageBox.Show (file.GetLength(). ToString());' –

+0

AxHost 래퍼를 사용하지 마십시오. . 일반 interop 라이브러리를 사용하십시오. "Ax"를 빼고 –

답변

0

MSDN에서 "잘못된 상태에서 ActiveX 컨트롤을 참조 할 때 throw되는 예외" 이 경우이 오류를 "처리"할 수있는 방법은 없습니다. COM/ActiveX가 알 수없는 상태입니다. 코드에 버그가 있거나 ActiveX 컨트롤 코드에 버그가 있습니다. 지원 방식으로 ActiveX를 사용하고 있는지 확인하십시오.

+0

이라는 이름을 붙이면 그 버그가 DLL의 이전 버전에서 나온 것입니까? –

0

대부분의 ActiveX 컨트롤에는 CreateControl() 메서드가 있습니다. 먼저 호출하십시오. CreateControl()을 호출 한 후 컨트롤이 표시되지 않는 경우 Refresh()을 호출합니다.