Search

MFC 프로젝트에서 ATL 연동하기

Programming/COM,ATL 2016. 3. 29. 11:44 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MFC 프로젝트에서 ATL 연동하기


작업 환경 : VS2013


일반 MFC 프로젝트를 만듭니다.




2. 대화 상자 기반



ActiveX 컨트롤 체크 확인



만들어진 다이얼로그에서 ActiveX 컨트롤 추가



추가하면 하얀 네모가 다이얼로그에 추가된다.



ActiveX 컨트롤을 클릭한다음 우클릭하여 속성이 뜨고 번개모양 아이콘을 누르면 연결된 이벤트들이 확인된다.



ATL 의 Property 와 Method 는 ActiveX 컨트롤 멤버변수 추가하여서 사용이 가능하다.



예제로는 Ctrl 이라는 멤버 변수를 추가하였다.

다음과 같이 h, cpp 파일이 만들어진다.



내부에는 ATL 에서 구현한 Property 와 Method 가 보인다.



ActiveX 컨트롤에서 이벤트 처리 함수를 추가하였다.



이제 Ctrl 의 Property 와 Method 를 불러올 수 있다.



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

ATL 프로젝트로 만든 DLL 을 MFC 프로젝트에서 사용하기



ATL 프로젝트로 만든 DLL 이름을 ComServer.DLL 이라고 가정하겠습니다.


ComServer 대신에 자신이 만든 DLL 을 쓰면 됩니다.



사용하고자하는 ComServer.dll 파일을 프로젝트 디렉토리에 복사한다.


stdafx.h 파일에 


#import "ComServer.dll" no_namespace named_guids


넣고


빌드를 하게 되면


빌드 폴더에 ComServer.tlh , ComServer.tli 가 생성된것을 확인 할 수 있습니다.



ComServer.tlh 파일을 열어 둡니다.




그다음 Dlg 의 OnInitDialog() 같은 곳에 아래의 코드를 삽입한다.


ComTest 는 객체 이름입니다.


try{


UpdateData();


HRESULT rc;


IComTestPtr pComTest; //IComTest *pComTest 도 가능 !!! (IComTest 의 스마트포인터)


rc = CoCreateInstance(CLSID_ComTest, NULL, CLSCTX_INPROC_SERVER, DIID_IComTest, (void**)&pComTest);


if (FAILED(rc)){


MessageBox("Failure in call to CoCreateInstance");


return;


}


pComTest->(사용하고 싶은 속성이나 메서드);


}


catch (_com_error &e){


CString strBuffer;


strBuffer.Format("Code = %08lXnCode meaning = %snSource = %snDescription = %sn",

e.Error(), e.ErrorMessage(), e.Source(), e.Description());

AfxMessageBox(strBuffer);

}






'Programming > COM,ATL' 카테고리의 다른 글

MFC 프로젝트에서 ATL 연동하기  (2) 2016.03.29
ATL/COM 강좌  (0) 2016.03.25
ATL 프로젝트에서 hWnd사용하기 #2  (0) 2016.03.25
ATL 프로젝트에서 hWnd사용하기  (0) 2016.03.25
ocx, dll 라이브러리 등록  (0) 2016.03.15