Freigeben über


Ein Client in Managed Extensions for C++

Der Client sieht in Managed Extensions for C++ wie folgt aus:

Auflistung 1. Client in Managed Extensions for C++ (ClientVC.cpp)

#using <mscorlib.dll>
using namespace System;

#using "..\Bin\CompCS.dll"
#using "..\Bin\CompVC.dll"
#using "..\Bin\CompVB.dll"

// The method, main, is the application's entry point.
void main() {

   // Iterate through the component's strings,
   // and write them to the console.
   CompCS::StringComponent* myCSStringComp = 
      new CompCS::StringComponent();
   Console::WriteLine  
      (L"Strings from C# StringComponent");
   for (int index = 0; index < myCSStringComp->Count; 
      index++) {
      Console::WriteLine(myCSStringComp-> 
         GetString(index));
   }

   // Iterate through the component's strings,
   // and write them to the console.
   CompVC::StringComponent* myVCStringComp = 
      new CompVC::StringComponent();
   Console::WriteLine 
     (L"\nStrings from Visual C++ StringComponent");
   for (int index = 0; index < myVCStringComp->Count; 
      index++) {
      Console::WriteLine(myVCStringComp-> 
   GetString(index));
   }

   // Iterate through the component's strings,
   // and write them to the console.
   CompVB::StringComponent* myVBStringComp = 
      new CompVB::StringComponent();
   Console::WriteLine(L"\nStrings from Visual Basic 
      StringComponent");
   for (int index = 0; index < myVBStringComp->Count; 
      index++) {
      Console::WriteLine(myVBStringComp-> 
   GetString(index));
   }
}

Die drei Komponenten wurden importiert und befinden sich jetzt jeweils im entsprechenden ..\Bin-Unterverzeichnis:

#using "..\Bin\CompCS.dll"
#using "..\Bin\CompVC.dll"
#using "..\Bin\CompVB.dll"

Die Abschnitte des Clientcodes, die die drei Zeichenfolgenkomponenten aufrufen, sind – abgesehen von der Angabe der zu verwendenden Bibliothek – identisch. Die erste Anweisung in allen drei Abschnitten deklariert eine neue lokale Variable des Typs StringComponent (in der Komponente definiert), initialisiert die Variable und ruft deren Konstruktor auf:

CompCS::StringComponent* myCSStringComp = 
new CompCS::StringComponent();

Nachdem eine Zeichenfolge in die Konsole geschrieben wurde, um anzugeben, dass dieser Teil des Programms aufgerufen wurde, durchläuft der Client die Member der entsprechenden Zeichenfolgenkomponente mit Hilfe des Wertes der Count-Eigenschaft:

for (int index = 0; index < myCSStringComp->Count; 
    index++) {
    Console::WriteLine(myCSStringComp-> 
 GetString(index));
}

Weitere Anforderungen gibt es nicht. Für die beiden anderen Sprachkomponenten wird alles wiederholt.

**Hinweis   **Wenn Sie die Vorgehensweise mit Indexern anstelle der separaten GetString-Methode verwendet haben, ist die Verwendung des myCSStringComp[index]-Aufrufcodes natürlicher.

Das Erstellen des neuen Managed Extensions for C++-Clients ist einfach:

cl.exe /clr /Zi /c ClientVC.cpp
link.exe /debug /nod:libcpmt.lib 
    kernel32.lib mscoree.lib 
    /out:..\bin\ClientVC.exe ClientVC.obj

Wie bei den bisherigen Managed Extensions for C++-Beispielen benötigen Sie den Schalter /clr, um den Compiler anzuweisen, verwalteten Common Language Runtime-Code zu erstellen. Beim Ausführen des sich daraus ergebenden Programms wird Folgendes ausgegeben:

C:\...\CompTest\Bin>clientvc
Strings from C# StringComponent
C# String 0
C# String 1
C# String 2
C# String 3

Strings from Visual C++ StringComponent
Visual C++ String 0
Visual C++ String 1
Visual C++ String 2
Visual C++ String 3

Strings from Visual Basic StringComponent
Visual Basic String 0
Visual Basic String 1
Visual Basic String 2
Visual Basic String 3

Siehe auch

Ein Client in Visual C# | Ein Client in Visual Basic | Ein Windows Forms verwendender Windows-Client | Ein ASP.NET verwendender Client | Zusammenfassung des Lernprogramms für Entwicklung | Anhang A: Tools zum Durchsuchen von Namespaces