Beispiel für LABRADOR-Attribute: Implementiert einen Server ohne Benutzeroberfläche
Aktualisiert: November 2007
Im Beispiel für LABRADOR-Attribute wird die Verwendung von ATL zum Implementieren eines EXE-Servers ohne Benutzeroberfläche erläutert. Mit diesem Server kann ein Objekt erstellt werden, das zwei benutzerdefinierte Schnittstellen unterstützt, die in Labrador.idl definiert sind.
![]() |
---|
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
In diesem Beispiel werden drei Komponenten verwendet: der Server, die Marshalling-DLL und der Treiber.
So erstellen und registrieren Sie die Komponenten
Öffnen Sie die Projektmappendatei Labrador.sln.
Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
Der Server, die Marshalling-DLL und der Treiber werden erstellt und registriert.
So führen Sie den Treiber aus
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt labdriv, und wählen Sie Als Startprojekt festlegen.
Klicken Sie im Menü Debuggen auf Starten ohne Debuggen.
Der Treiber erstellt ein Objekt, ruft es einige Male auf und gibt es dann wieder frei.
Attribute
In diesem Beispiel werden die folgenden Attribute verwendet:
aggregatable, coclass, default, emitidl, helpstring, in, module, object, out, progid, string, threading, uuid, version, vi_progid
Schlüsselwörter
In diesem Beispiel werden die folgenden Schlüsselwörter verwendet:
_CrtDumpMemoryLeaks; _tcsicmp; _tcstok; _tprintf; _vstprintf; ATLASSERT; BEGIN_COM_MAP; BEGIN_OBJECT_MAP; CComModule::Init; CComModule::RegisterClassObjects; CComModule::RevokeClassObjects; CComModule::Unlock; CComModule::UnregisterServer; CComObjectRoot; CoCreateInstance; COM_INTERFACE_ENTRY; CoUninitialize; DECLARE_NOT_AGGREGATABLE; DECLARE_REGISTRY; DispatchMessage; END_OBJECT_MAP; GetCurrentThreadId; GetMessage; OBJECT_ENTRY; OutputDebugString; PostThreadMessage; Trace; va_end; va_list; va_start; wcscpy_s
![]() |
---|
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. |