IPDRIVE-Beispiel: Demonstriert eine Anwendung mit Automatisierungsclient

Aktualisiert: November 2007

Das IPDRIVE-Beispiel ist eine einfache Anwendung mit Automatisierungsclient (früher OLE-Automatisierung), die die Beispielanwendung INPROC steuert. Es testet die Funktionalität von INPROC, einem prozessinternen Automatisierungsserver. IPDRIVE kann sowohl die prozessinterne Version als auch die prozessexterne bzw. lokale Serverversion von INPROC steuern und demonstriert dabei die Leistungsvorteile prozessinterner Komponenten. Weitere Informationen finden Sie im INPROC-Beispiel.

Hinweis:

Vor dem Ausführen von IPDRIVE müssen Sie die INPROC-Beispielanwendung ausführen, damit sich INPROC in der Registrierung registriert.

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 IPDRIVE-Beispiel und führen es aus

  1. Folgen Sie zum Erstellen, Ausführen und Registrieren des INPROC-Beispiels den Anweisungen.

  2. Öffnen Sie die Projektmappe ipdrive.sln.

  3. Klicken Sie im Menü Erstellen auf Erstellen.

  4. Führen Sie das IPDRIVE-Beispiel als eigenständige Anwendung aus, damit es sich beim System registrieren kann.

    Wenn Sie IPDRIVE ausführen, wird das INPROC-Beispiel geladen und ein Variantenzuordnungsobjekt erstellt, das Sie mit der Schnittstelle von IPDRIVE ändern können.

Ein Variantenzuordnungsobjekt ist der CMap-Auflistung in MFC sehr ähnlich. Es wird für das Zuordnen eines willkürlich gewählten Werts zu einem anderen willkürlich gewählten Wert verwendet. Jeder Wert ist ein VARIANT, der aus einem Typ und einem Wert besteht. Mit der Benutzeroberfläche von IPDRIVE können Sie sowohl auf den Typ als auch auf den Wert zugreifen. Jedes Typ-/Wertpaar kann einem anderen Typ-/Wertpaar zugeordnet werden.

IPDRIVE stellt außerdem die beiden Schaltflächen Test1 und Test2 zur Verfügung, mit denen die Leistungsfähigkeit der INPROC-Serveranwendung getestet werden kann. Diese Funktionen testen überwiegend die Systembeanspruchung durch Funktionsaufrufe bei der Automatisierung. Diese ist bei den lokalen Serverversionen von INPROC in der Regel wesentlich größer als bei den prozessinternen Versionen von INPROC. Ein lokaler Server wird in seinem eigenen Adressbereich als separate ausführbare Anwendung ausgeführt. Dabei benötigt er einen Remoteprozeduraufruf (RPC), um auf die Methoden und Eigenschaften seiner Objekte zuzugreifen. Ein prozessinterner Server hingegen wird als DLL im Adressbereich des Clients geladen und benötigt keinen RPC. Die Schaltflächen Test1 und Test2 führen beide genau fünf Sekunden lang den Test aus und zeigen dann die Anzahl der Aufrufe an. Je mehr Aufrufe vorhanden sind, desto größer ist die Leistungsfähigkeit.

INPROC enthält auch eine einfachere Auflistung (ein Array aus Zeichenfolgen), die nicht von IPDRIVE angewendet wird.

Schlüsselwörter

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

AfxMessageBox; CArchive::Flush; CArchive::IsStoring; CCmdUI::Enable; CCmdUI::SetText; CControlBar::EnableDocking; CControlBar::GetBarStyle; CControlBar::SetBarStyle; CDialog::DoModal; CDocument::DeleteContents; CDocument::OnNewDocument; CEditView::GetEditCtrl; CFrameWnd::DockControlBar; CFrameWnd::EnableDocking; CObject::AssertValid; CObject::Dump; CObject::Serialize; CStatusBar::Create; CStatusBar::SetIndicators; CString::GetBuffer; CString::LoadString; CString::ReleaseBuffer; CToolBar::Create; CToolBar::LoadBitmap; CToolBar::SetButtons; CView::GetDocument; CView::OnDraw; CWinApp::AddDocTemplate; CWinApp::ExitInstance; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::OnFileNew; CWnd::DoDataExchange; CWnd::GetWindowTextLength; CWnd::OnCreate; SetWindowText; 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