개인적으로는 ActiveX는 빌더로 만들건.. VC++로 만들건 거의 비슷하다고 말씀드릴 수 있을 듯 합니다.
빌더가 더 많은 UI 컴포넌트를 가지고 있기 때문에 더 쉽다고 해야 할까나요?
많은 예제들이 없어서 좀 더 불편하게 생각된다고 느껴집니다.
우선 배포시 X표로 보이게 되는 경우는 제경험에 의하면 아래와 같습니다.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=36613
빌더로 ActiveX를 만드실 경우 파괴자를 사용하시면 아래와 같은 경우가 발생합니다.
그쪽으로 안넘어갈때가 생기죠. -.-; 저도 그런 경험이 있습니다.
ActiveX를 사용하는 페이지에서 빠져 나갈때.. 소멸자와 같은 역할을 하는 함수를 호출해 주시는 방법도 하나의 방법으로 사용한 적이 있습니다.
팀원 님이 쓰신 글 :
: 같은 작업을 하는 팀원입니다 상황에 대해 좀 더 부연설명을 드리자면
:
: 닫을때 메모리가 전부 클리어 되지 않는 상황이 발생하여 다시 웹페이지를 띄울때 로드가 되지 않습니다.
:
: 닫을때 문제인지 띄울때 문제인지 정확히 파악을 할 수 는 없지만.
:
: 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를 만들어야 하는것인지 난감합니다...
: :
: : 제발 도와주십시오... 미루다 미루다 완료시점이 낼 모레인데...
: : 지체상금을 물게 생겼답니다... ㅠ.ㅠ
: :
: : 도와주십니오....