|
같은 작업을 하는 팀원입니다 상황에 대해 좀 더 부연설명을 드리자면
닫을때 메모리가 전부 클리어 되지 않는 상황이 발생하여 다시 웹페이지를 띄울때 로드가 되지 않습니다.
닫을때 문제인지 띄울때 문제인지 정확히 파악을 할 수 는 없지만.
ActiveX만 존재할때에 발생하는 이벤트 중에 종료에 관한 이벤트가 덜 발생합니다.
즉 파괴자가 호출되지 않구요
파괴자나 Module Terminate 를 강제적으로 호출하면 에러가 생깁니다.
그리고 이용한 웹페이지엔 2개에 포탈엔진이 존재하고 있습니다.
포탈엔진이랑 충돌이 나는거 같은데 이는 Java로 구성되어 있는거 같습니다.
에러없는 시나리오 : 부모창 -> 자식창(ActiveX존재) -> 자식창 종료 -> ActiveX 전부 클리어
에러있는 시나리오 : 부모창 -> 자식창(ActiveX존재) -> 자식창 종료 -> DllUnload False -> 부모창 종료 -> Module
Terminate
즉 어떠한 충돌때문에 Module Terminate가 호출되지 않거나 이는 BC++이 MS사 IE를 이용하기 위해 dll이나 함수를 래핑하여 쓰는데 그것때문에 발생하는건지
참고적으로 찾은내용은 이러합니다.
1. IE 닫을시 파괴가 정상적으로 이루어 지지않습니다.
2. 최상위 창이면 상관이없음, 자식창에 ActiveX가 떠야해서 문제가 발생함.
최상위창은 지금상태에서도 모듈터미네이트가 발생하기때문에 문제가 있는데 문제가 없게 느껴지는것임.
자식창에서 해제가 되야하는데 어떠한 것을 overflow또는 다양한 클라이언트 소프트가 있기때문에 세션회복 툴 등
다양한 것이 있기때문에
여러가지 상황이 겹쳐서 날 수 도 있습니다.
아니면 ActiveX에서 과도하게 메모리나 컨트롤을 써서 에러가 발생을 하는것인지.
도움받는이... 님이 쓰신 글 :
: 이 포럼에서 줄곳 도움만 받아가는 사람입니다. 다시 한 번 간곡한 도움을 청합니다.
:
: 이번 문제는 다름이 아니옵고, 제가 근무하는 회사에서 한 중견업체에 사내의 그룹관리와 비슷한
: 프로젝트를 수주하여 개발/납품하게 되었답니다.
:
: 그 구성환경은 대부분 웹이고 그 웹페이지들 대부분은 또 다른 업체에서 개발하고 있습니다.
: 저희가 할 일은 해당 페이지 안에 그룹내의 멤버들을 보여주는 ActiveX폼을 만들어 끼우는 것입니다.
:
: 일단은 ActiveX폼을 기준으로 TTreeView컴포넌트와 Timage컴포넌트를 써서 프로그램을
: 완성하였고 구동 또한 잘 되는 것을 확인하였습니다.
:
: 그런데 이상하게도 저희가 만든 ActiveX를 내포한 페이지를 닫았다 열면 그 무시무시한 'X'표시와 함께
: ActiveX가 로드되지 않는 것입니다. 일반적인 페이지에서는 잘 되구염.. ㅠ.ㅠ
:
: 여러가지 테스트를 해 보았지만 뾰족한 해결책이 나오지 않았던 터에 혹시나 하여 C++빌더로
: 아무것도 포함하지 않는 일반ActiveX폼을 만들어 띄워도 보았으나 증상은 똑같았습니다.
: 궁여지책으로 M$에서 만든 기술이니 M$개발툴을 써보자하는 맘에 VC++ 6.0으로 먼저 설명드린 방식처럼
: 아무것도 없는 더미 ActiveX를 만들어 띄웠더니 이게 왠일입니까? 너무 잘 됩니다. ㅠ.ㅠ
:
: 사실, ActiveX는 전문적인 수준도 못되는 터라 하소연하기도, 자문을 구하기도 어려워
: 답을 내지 못하고 있는 상황이랍니다. 현재의 상황에서 M$툴로 만든다는 것은 시간이 필요하고
: 여간 손해보는 일이 아닌지라 염치 불구하고 포럼 회원님들의 고견을 부탁드리고 싶습니다.
:
: 빌더에서 만든 ActiveX와 M$ VC++에서 만든 ActiveX가 왜 다르게 동작하는 것인지?
: 만약 다르다면, 빌더로는 어떤 ActiveX를 만들어야 하는것인지 난감합니다...
:
: 제발 도와주십시오... 미루다 미루다 완료시점이 낼 모레인데...
: 지체상금을 물게 생겼답니다... ㅠ.ㅠ
:
: 도와주십니오....
|