2011-02-14 4 views
2

IE6,7,8 & 9 Beta에서 작동하지만 작동중인 작동 코드가 있는데 IE9 RC에서 충돌합니다. 웹 페이지가 ActiveX 인터페이스를 사용하고 있지만 ActiveX에서 IDispatch :: Invoke를 호출하려고하면 ActiveX가 충돌하는 것을 볼 수 있습니다.IDispatch :: Invoke를 호출 할 때 IE9 RC가 충돌 함

내 응용 프로그램은 웹 페이지 (GUI 컨테이너)와 ActiveX (응용 ​​프로그램 자체)로 구성되어 있는데 웹 페이지가 ActiveX 인터페이스를 사용하지만 웹 페이지로 데이터를 다시 보내려고 할 때가 있습니다. 나는 추락한다.

코드 (vs2005 C++)를 디버깅 한 후 모든 IDispatch 함수가 크래시를 일으킨다는 것을 알았지 만이 동작은 RC 버전에서만 재생되지만 우리 제품은 이미 3 년 동안 문제없이 실행되었고 현재 모든 클라이언트 RC 업그레이드는 더 이상 우리 제품을 사용할 수 없습니다.

이러한 동작을 일으킬 수있는 변경 사항이 있습니까? 온라인 문서에 따르면 나는 아무것도 찾을 수 없었다. 감사합니다. .

답변

1

무거운 투쟁 끝에 나는 (2 년 전) 대답을 찾았습니다. 그 때 나는 IE9 공개 토론에 질문을 닫았다 그러나이 실을 닫는 것을 잊었다.

저를 상기시켜 주신 @ Paul Sweatte에게 감사드립니다.

  • 웹 함수를 등록 할 것 ... 등 "onPause", "ONSTART"

    1. 액티브 X 및 웹과 같은 알려진 문자열의 집합을했다 :

      우리의 프레임 워크는 다음과 같이 일 엔진에서.

    2. 두 번째 부분은 분명히 오래된 IE 버전에서 자바 스크립트 평가 기능의 IDispatch 개체를 만들 것이 문제였다

    필요할 때 액티브 X는 콜백을 부를 것이다, 당신은 액티브로 개체를 전달할 수 있습니다.

    다른 많은 변경 사항과 함께 IE9에서도이 변경 사항이 적용되었으며 eval은 다른 것을 반환합니다.

    액티브 X가 콜백을 실행하려고하면 크래시가 발생합니다. 그것은 ... 디버깅하기가 매우 어렵습니다.

  • 1

    IE9RC 도입 액티브 X 필터링 :

    인터넷 익스플로러 9 RC는 모든 사이트에 대한 ActiveX 컨트롤을 차단 한 다음 새로운 액티브 X 필터링 옵션을 사용하여 신뢰 만이 사이트에 그들을 다시 켤 수 있습니다 .

    +0

    안녕하세요, 귀하의 의견에 감사드립니다.하지만 제 경우에는 대답이 아닙니다. 이 스레드를 대답으로 업데이트하는 것을 잊어 버렸지 만 지금은 업데이트 할 것입니다. – ManicQin