부모글 보이기/감추기 어떤 코드를 보면 CoCreateInstance 함수를 사용하고어떤 코드를 보면 CComObject<T>* pCom ;CComObject<T>::CreateInstance(&pCom) 함수를 사용하고또 어떤 코드를 보면 CComObject<T>* pCom = new CComObject<T>() 를 사용하든데 어떻게 다른 건가요??? AD BLOCK 해제 요청 이 글에는 광고가 많이 들어가 있지 않습니다. adblock을 해제하셔도 글을 읽는데 그다지 부담이 없으니 해제를 부탁드립니다. 왜냐하면. 그것은 CComObject::CreateInstance의 소스를 보시면 확인하실 수 있습니다. atlcom.h 파일에 있는 소스를 보면, 대략 다음과 같습니다. template <class Base> HRESULT WINAPI CComObject<Base>::CreateInstance(CComObject<Base>** pp) throw() { CComObject<Base> *p = new CComObject<Base>(); p->Construct 관련한 약간의 부가작업 메서드 호출 } 위에서 보시는 것처럼, CreateInstance 내부에서 new CComObject<T>()를 호출하지요. 부가 메서드들은 ATL 관련 소스 코드 작성하시면서 많이 봤던 초기화 관련 코드들입니다. 만약, 해당 클래스에 FinalConstruct와 FinalRelease 등에 코드를 추가하셨다면 new와 CreateInstance의 차이가 없습니다. [다음 글] COM 객체 생성하는 방법[이전 글] ClickOnce 실행 시 Internet Explorer 7.0에서 에러 메세지 출력 [최초 등록일: 4/21/2008] [최종 수정일: 12/20/2022] 비밀번호 댓글 작성자 NoWriterDateCnt.TitleFile(s)