티스토리 뷰
DCOM 클라이언트 : https://petra.tistory.com/1077
VisualStudio2022 프로젝트 파일
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