다음을 통해 공유


CALCDRIV 샘플: 자동화 클라이언트 응용 프로그램 설명

업데이트: 2007년 11월

CALCDRIV 샘플은 간단한 자동화(이전의 OLE 자동화) 클라이언트 응용 프로그램입니다. CALCDRIV는 MFCCALC 샘플 응용 프로그램을 구동합니다. 이 응용 프로그램은 기본적인 계산기 기능을 제공하는 자동화 서버입니다. MFCCALC에는 Microsoft Windows에 제공되는 계산기 응용 프로그램과 비슷한 간단한 계산기 인터페이스가 있습니다.

보안 정보:

이 샘플 코드는 개념을 보여 주기 위해 제공되며 가장 안전한 코드 작성 방법을 제시하지 않을 수 있으므로 응용 프로그램이나 웹 사이트에서 사용할 수 없습니다. Microsoft는 샘플 코드를 원래 용도 이외의 다른 용도로 사용하는 경우 발생하는 부수적이나 파생적인 손해에 대해 책임을 지지 않습니다.

샘플 및 이를 설치하기 위한 지침을 가져오려면

  • Visual Studio의 도움말 메뉴에서 샘플을 클릭합니다.

    자세한 내용은 샘플 파일 찾기를 참조하십시오.

  • 최신 버전 및 전체 샘플 목록은 Visual Studio 2008 Samples 페이지에서 온라인으로 사용할 수 있습니다.

  • 컴퓨터의 하드 디스크에서도 샘플을 찾을 수 있습니다. 기본적으로 샘플과 추가 정보 파일은 \Program Files\Visual Studio 9.0\Samples\ 아래의 폴더에 복사됩니다. Visual Studio Express Edition의 경우에는 모든 샘플이 온라인에 있습니다.

샘플 빌드 및 실행

CALCDRIV 샘플을 빌드하고 실행하려면

  1. MFCCALC의 지침에 따라 프로젝트를 빌드하고 실행합니다.

  2. calcdriv.sln 솔루션을 엽니다.

  3. 빌드 메뉴에서 빌드를 클릭합니다.

    참고:

    CALCDRIV를 빌드하기 전에 MFCCALC 빌드 및 등록을 수행하지 않으면 "'MFCCALC.Application' 개체를 만들 수 없습니다."라는 메시지가 나타납니다.

CALCDRIV를 실행하면 MFC 라이브러리 Calc Driver 대화 상자가 나타나고 MFCCALC 응용 프로그램이 시작됩니다. 여기서 MFCCALC의 계산기 사용자 인터페이스를 직접 사용하거나 다음과 같이 CALCDRIV에서 MFCCALC를 구동할 수 있습니다.

  1. MFC Calc Driver의 Expression 상자에 두 개 이상의 숫자를 +, -, * 또는 / 연산자로 구분하여 입력합니다.

    참고:

    MFCCALC는 괄호를 해석하지 않으므로 연산자 우선 순위를 구현하지 않습니다.

  2. Go를 클릭하면 MFCCALC에서 식을 한 단계씩 계산합니다.

  3. Single Step을 클릭하면 식이 한 번에 한 숫자 또는 한 연산자씩 단계별로 계산됩니다.

  4. Refresh를 클릭하여 MFCCALC의 상태 정보(Last AccumLast Operand)를 요청합니다.

디스패치 클래스 사용

CALCDRIV는 다음과 같이 CRemoteCalcDlg 클래스를 사용합니다.

  • CALCDRIV의 CRemoteCalcDlg 클래스는 MFCCALC의 디스패치 인터페이스를 나타냅니다. CRemoteCalcDlg 클래스는 CreateDispatch 같은 일부 특정 자동화 관련 멤버 함수를 가지는 CCmdTarget에서 파생됩니다.

  • CDriverDlgCRemoteCalcDlg 개체 m_calc를 포함합니다. 포함하는 CDriverDlg 개체와 같이 CRemoteCalcDlg 개체는 CALCDRIV가 지속되는 대부분 기간 동안 활성 상태를 유지합니다. 대화 상자 개체를 생성할 때 CRemoteCalcDlg가 생성됩니다.

  • CDriverDlg::OnInitDialogCRemoteCalcDlg 개체에 대한 CCmdTarget::CreateDispatch를 호출합니다. CreateDispatch에서는 디스패치 이름을 첫째 매개 변수로 사용해야 합니다. 일반적으로 자동화 서버 응용 프로그램 개발자는 디스패치 인터페이스의 이름 및 인터페이스의 속성과 메서드를 설명하는 문서를 제공합니다. 자동화 서버 응용 프로그램의 디스패치 인터페이스 이름을 찾는 또 다른 방법은 REGEDIT /v(자세한 정보 옵션)를 사용하여 서버의 Windows 등록을 확인하는 것입니다.

  • CDriverDlg는 MFCCALC의 Button 메서드를 호출하여 CALCDRIV의 식 계산기를 구현합니다. 이 메서드는 계산기 대화 상자에 있는 여러 가지 단추에 대한 에뮬레이터입니다.

  • CDriverDlg는 MFCCALC의 GetOpnd 및 GetAccum 메서드를 호출하여 CALCDRIV의 Refresh 함수를 구현합니다.

  • CDriverDlg 소멸자는 MFCCALC에 의해 노출되는 Quit 메서드를 호출하여 CALCDRIV를 닫을 때 MFCCALC를 종료합니다.

키워드

이 샘플에서는 다음의 키워드를 보여 줍니다.

AfxMessageBox; AfxOleInit; CDialog::DoModal; CDialog::EndDialog; CDialog::OnInitDialog; CEdit::GetSel; CEdit::SetSel; COleDispatchDriver::AttachDispatch; COleDispatchDriver::CreateDispatch; COleDispatchDriver::GetProperty; COleDispatchDriver::InvokeHelper; COleDispatchDriver::SetProperty; CString::GetLength; CWinApp::InitInstance; CWnd::DoDataExchange; CWnd::GetWindowText; CWnd::SetWindowText; GetWindowText; afxMemDF; min; wsprintf

참고:

이 샘플을 비롯한 일부 샘플은 Visual C++ 마법사, 라이브러리 및 컴파일러의 변경 내용을 반영하도록 수정되지 않았지만 해당 작업의 수행 방법을 보여 줍니다.

참고 항목

기타 리소스

MFC 샘플