티스토리 뷰

프로그래밍/MFC

DCOM ATL서버 컴포넌트

에어버스 2017. 4. 2. 23:11

DCOM 클라이언트 : https://petra.tistory.com/1077

 

VisualStudio2022 프로젝트 파일

ATLProject1.zip
3.46MB

 

VisualStudio2017 Communication을 관리자 권한으로 실행한다.
그래야만 컴파일할때 DCOM서버가 자동등록된다.

ATL 프로젝트 만들기
(아래 그림에서 프록시/스텁 코드 병합 허용을 선택하면 프럭시/스텁 프로젝트(프로젝트명PS)는 안 만들어진다. - 클라이언트에서 DCOM 서버 연결시 프록시/스텁 정보가 필요하니 여기서는 선택하지 않는다.)

위 그림처럼 실행파일(EXE) 선택한다.

클래스 뷰에서 프로젝트명을 선택하고 클래스를 추가 메뉴 선택한다.

ATL 단순 개체 선택.

추가 20230216>
VisualStudio2022 에서는 클래스 추가로 하면 일반 클래스만 추가가능하므로
프로젝트 메뉴에서 모듈추가 메뉴를 클릭해야 한다.

 

 

약식이름을 입력하면 나머지는 자동으로 만들어지나 ProgID는 보통 프로젝트명.클래스명으로 직접 입력하는듯하고 다음버튼을 누른다.

기본값으로 마침 버튼을 누른다.

위 그림처럼 추가된 클래스의 인터페이스 ISimpleOperator 선택하고 메서드 추가(함수)한다.

위 그림처럼 메서드 이름에 매개 변수 특성을 선택하고 추가한다.

매개변수 value 는 매개변수특성은 in, 매개변수형식은 LONG 선택
매개변수 pRetruen 은 매개변수특성은 out, retval 매개변수형식은 LONG* 선택

마침 버튼을 누른다.

메서드로부터 반환값을 얻으려면 매개변수특성에서 out, retval 을 선택하면 해당 변수에 대입하면 반환값이 된다.

위 그림처럼 SimpleOperator.cpp 의 Square 메서드에 *pResult = value * value; 를 추가한다.
(추가한 메서드에 코드 추가한다)

프로젝트 빌드하면 아래 그림처럼 exe, tlb 파일이 만들어 지고, Proxy/Stub 용 프로젝트명PS.dll 도 만들어진다.

자동으로 레지스트리에 등록되는 듯함. 혹시 등록 안되면 아래 그림처럼 직접 등록한다. (노란색)

명령프롬프트(관리자모드) 열고, ATLProject1.exe /RegServer

클라이언트 만들기 : http://petra.tistory.com/1077

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30