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 샘플을 빌드하고 실행하려면
MFCCALC의 지침에 따라 프로젝트를 빌드하고 실행합니다.
calcdriv.sln 솔루션을 엽니다.
빌드 메뉴에서 빌드를 클릭합니다.
참고: CALCDRIV를 빌드하기 전에 MFCCALC 빌드 및 등록을 수행하지 않으면 "'MFCCALC.Application' 개체를 만들 수 없습니다."라는 메시지가 나타납니다.
CALCDRIV를 실행하면 MFC 라이브러리 Calc Driver 대화 상자가 나타나고 MFCCALC 응용 프로그램이 시작됩니다. 여기서 MFCCALC의 계산기 사용자 인터페이스를 직접 사용하거나 다음과 같이 CALCDRIV에서 MFCCALC를 구동할 수 있습니다.
MFC Calc Driver의 Expression 상자에 두 개 이상의 숫자를 +, -, * 또는 / 연산자로 구분하여 입력합니다.
참고: MFCCALC는 괄호를 해석하지 않으므로 연산자 우선 순위를 구현하지 않습니다.
Go를 클릭하면 MFCCALC에서 식을 한 단계씩 계산합니다.
Single Step을 클릭하면 식이 한 번에 한 숫자 또는 한 연산자씩 단계별로 계산됩니다.
Refresh를 클릭하여 MFCCALC의 상태 정보(Last Accum 및 Last Operand)를 요청합니다.
디스패치 클래스 사용
CALCDRIV는 다음과 같이 CRemoteCalcDlg 클래스를 사용합니다.
CALCDRIV의 CRemoteCalcDlg 클래스는 MFCCALC의 디스패치 인터페이스를 나타냅니다. CRemoteCalcDlg 클래스는 CreateDispatch 같은 일부 특정 자동화 관련 멤버 함수를 가지는 CCmdTarget에서 파생됩니다.
CDriverDlg는 CRemoteCalcDlg 개체 m_calc를 포함합니다. 포함하는 CDriverDlg 개체와 같이 CRemoteCalcDlg 개체는 CALCDRIV가 지속되는 대부분 기간 동안 활성 상태를 유지합니다. 대화 상자 개체를 생성할 때 CRemoteCalcDlg가 생성됩니다.
CDriverDlg::OnInitDialog는 CRemoteCalcDlg 개체에 대한 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++ 마법사, 라이브러리 및 컴파일러의 변경 내용을 반영하도록 수정되지 않았지만 해당 작업의 수행 방법을 보여 줍니다. |