CALCDRIV-Beispiel: Demonstriert eine Anwendung mit Automatisierungsclient

Aktualisiert: November 2007

Das CALCDRIV-Beispiel ist eine einfache Anwendung mit Automatisierungsclient (früher OLE-Automatisierung). CALCDRIV steuert die Beispielanwendung MFCCALC, einen Automatisierungsserver, der grundlegende Rechnerfunktionen zur Verfügung stellt. MFCCALC verfügt über eine Rechneroberfläche, die wie die Rechner-Anwendung von Microsoft Windows aussieht.

Sicherheitshinweis:

Dieser Beispielcode dient dazu, ein Konzept zu veranschaulichen. Er sollte nicht für Anwendungen oder Websites verwendet werden, da dieser Code unter Umständen nicht die sicherste Codierungstechnik darstellt. Microsoft übernimmt keine Haftung für beiläufig entstandene Schäden oder Folgeschäden, falls der Beispielcode nicht bestimmungsgemäß verwendet wird.

So rufen Sie Beispiele und Anweisungen für ihre Installation ab

  • Klicken Sie in Visual Studio im Menü Hilfe auf Beispiele.

    Weitere Informationen finden Sie unter Suchen von Beispieldateien.

  • Die neueste Version und vollständige Liste mit Beispielen ist online unter Visual Studio 2008 Samples verfügbar.

  • Sie können auch Beispiele auf der Festplatte des Computers suchen. Standardmäßig werden Beispiele und eine Infodatei in einen Ordner unter \Programme\Visual Studio 9.0\Samples\ kopiert. Für Express Editions von Visual Studio sind alle Beispiele online verfügbar.

Erstellen und Ausführen des Beispiels

So erstellen Sie das CALCDRIV-Beispiel und führen es aus

  1. Folgen Sie zum Erstellen und Ausführen des Projekts den Anweisungen in MFCCALC.

  2. Öffnen Sie die Projektmappe calcdriv.sln.

  3. Klicken Sie im Menü Erstellen auf Erstellen.

    Hinweis:

    Wenn Sie vor dem Erstellen von CALCDRIV nicht MFCCALC erstellen und registrieren, erhalten Sie die Meldung "Unable to create 'MFCCALC.Application' object".

Wenn Sie CALCDRIV ausführen, wird das MFC-Dialogfeld (Dialogfeld der Microsoft Foundation Class-Bibliothek) Calc Driver angezeigt und die Anwendung MFCCALC gestartet. Sie können die Benutzeroberfläche des MFCCALC-Rechners nun direkt benutzen oder MFCCALC von CALCDRIV aus folgendermaßen steuern:

  1. Geben Sie im Feld Expression des MFC-Dialogfelds Calc Driver zwei oder mehr Zahlen ein, die durch die Operatoren +, -, * oder / getrennt sind.

    Hinweis:

    MFCCALC kann keine Klammern interpretieren und implementiert keine Operatorrangfolge.

  2. Klicken Sie auf Go, wenn MFCCALC den Ausdruck in einem Schritt auswerten soll.

  3. Klicken Sie auf Single Step, um die Zahlen und Operatoren des Ausdrucks nacheinander auswerten zu lassen.

  4. Klicken Sie auf Refresh, wenn Sie Zustandsinformationen zu MFCCALC (Last Accum und Last Operand) anfordern möchten.

Verwenden einer Dispatch-Klasse

CALCDRIV verwendet die CRemoteCalcDlg-Klasse folgendermaßen:

  • Die CALCDRIV-Klasse CRemoteCalcDlg stellt die Dispatchschnittstelle von MFCCALC dar. Die CRemoteCalcDlg-Klasse ist von CCmdTarget abgeleitet, das über einige automatisierungsspezifische Memberfunktionen verfügt, z. B. CreateDispatch.

  • In CDriverDlg ist das CRemoteCalcDlg-Objekt m_calc eingebettet. Das CRemoteCalcDlg-Objekt bleibt, ebenso wie das CDriverDlg-Objekt, in das es eingebettet ist, nahezu die gesamte Laufzeit von CALCDRIV hindurch aktiv. CRemoteCalcDlg wird gleichzeitig mit dem Dialogobjekt erstellt.

  • CDriverDlg::OnInitDialog ruft CCmdTarget::CreateDispatch für das CRemoteCalcDlg-Objekt auf. CreateDispatch benötigt den Dispatchnamen als ersten Parameter. In der Regel enthält die Dokumentation des Entwicklers einer Automatisierungsserveranwendung Angaben zu den Namen der Dispatchschnittstellen und den Eigenschaften sowie Methoden der Schnittstellen. Sie können die Namen der Dispatchschnittstellen einer Automatisierungsserveranwendung auch herausfinden, indem Sie die Windows-Registrierung des Servers mit REGEDIT /v (Option für ausführliche Ausgabe) anzeigen.

  • CDriverDlg implementiert die Ausdrucksauswertung von CALCDRIV, indem es die Button-Methode von MFCCALC aufruft. Diese Methode ist ein Emulator für die verschiedenen Schaltflächen im Dialogfeld des Rechners.

  • CDriverDlg implementiert die Refresh-Funktion von CALCDRIV, indem es die GetOpnd-Methode und die GetAccum-Methode von MFCCALC aufruft.

  • Der CDriverDlg-Destruktor ruft die von MFCCALC verfügbar gemachte Quit-Methode auf, um MFCCALC zu beenden, wenn CALCDRIV geschlossen wird.

Schlüsselwörter

Dieses Beispiel demonstriert die Verwendung der folgenden Schlüsselwörter:

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

Hinweis:

In diesem und einigen anderen Beispielen wurden die Änderungen an den Visual C++-Assistenten, -Bibliotheken und -Compilern noch nicht nachvollzogen. Sie demonstrieren aber dennoch, wie Sie die gewünschte Aufgabe durchführen können.

Siehe auch

Weitere Ressourcen

MFC-Beispiele