DLLs (C++/CX)

Sie können Visual Studio verwenden, um entweder eine Win32-Standard-DLL oder eine Windows-Runtime Komponenten-DLL zu erstellen, die von Universelle Windows-Plattform-Apps (UWP) genutzt werden kann. Eine Standard-DLL, die mit einer Version von Visual Studio oder dem Microsoft C++-Compiler erstellt wurde, der vor Visual Studio 2012 liegt, wird möglicherweise nicht ordnungsgemäß in einer UWP-App geladen und besteht möglicherweise nicht den App-Überprüfungstest im Microsoft Store.

Windows-Runtime Komponenten-DLLs

Wenn Sie in fast allen Fällen eine DLL für die Verwendung in einer UWP-App erstellen möchten, erstellen Sie sie mithilfe der Projektvorlage dieses Namens als Windows-Runtime Komponente. Sie können ein Windows-Runtime Komponentenprojekt für DLLs erstellen, die öffentliche oder private Windows-Runtime Typen aufweisen. Auf eine Windows-Runtime Komponente kann über Apps zugegriffen werden, die in einer beliebigen Windows-Runtime kompatiblen Sprache geschrieben sind. Standardmäßig verwenden die Compilereinstellungen für ein Windows-Runtime Komponentenprojekt die Option "/ZW". Eine WinMD-Datei muss denselben Namen wie der Stammnamespace haben. Zum Beispiel kann eine Klasse namens A.B.C.MyClass nur instanziiert werden, wenn sie in einer Metadatendatei definiert ist, die A.winmd oder A.B.winmd oder A.B.C.winmd heißt. Der Name der DLL muss nicht mit dem Namen der WINMD-Datei übereinstimmen.

Weitere Informationen finden Sie unter Erstellen von Windows-Runtime-Komponenten in C++.

So verweisen Sie auf eine Drittanbieter-Windows-Runtime Komponenten-Binärdatei in Ihrem Projekt

  1. Öffnen Sie das Kontextmenü für das Projekt, das die DLL verwendet, und wählen Sie dann Eigenschaftenaus. Klicken Sie auf der Seite Allgemeine Eigenschaften auf die Schaltfläche Neuen Verweis hinzufügen .

  2. Eine Windows-Runtime Komponente besteht aus einer DLL-Datei und einer WINMD-Datei, die die Metadaten enthält. In der Regel sind diese Dateien im selben Ordner. Klicken Sie im linken Bereich des Dialogfelds Verweis hinzufügen auf die Schaltfläche Durchsuchen , und navigieren Sie dann zum Speicherort der DLL und der WINMD-Datei. Weitere Informationen finden Sie unter Erweiterungs-SDKs.

Standard-DLLs

Sie können eine Standard-DLL für C++-Code erstellen, die keine öffentlichen Windows-Runtime Typen verwendet oder produziert und von einer UWP-App verwendet. Verwenden Sie den Projekttyp Dynamic-Link Library (DLL), wenn Sie nur eine vorhandene DLL migrieren möchten, um in dieser Version von Visual Studio zu kompilieren, aber nicht den Code in ein Windows-Runtime Component-Projekt zu konvertieren. Wenn Sie die folgenden Schritte durchführen, wird die DLL neben Ihrer App bereitgestellt und kann im APPX-Paket ausgeführt werden.

Erstellen einer Standard-DLL in Visual Studio

  1. Wählen Sie auf der Menüleiste "Datei", "Neu", "Projekt" und dann die Vorlage "Dynamic Link Library (DLL)" aus.

  2. Geben Sie einen Namen für das Projekt ein und wählen Sie dann die Schaltfläche OK aus.

  3. Fügen Sie den Code hinzu. Stellen Sie sicher, dass Sie __declspec(dllexport) für Funktionen verwenden, die Sie exportieren möchten, z. B. __declspec(dllexport) Add(int I, in j);.

  4. Fügen Sie #include winapifamily.h diese Headerdatei aus dem Windows SDK für UWP-Apps hinzu, und legen Sie das Makro WINAPI_FAMILY=WINAPI_PARTITION_APPfest.

So verweisen Sie auf ein Standard-DLL-Projekt aus derselben Projektmappe

  1. Öffnen Sie das Kontextmenü für das Projekt, das die DLL verwendet, und wählen Sie dann Eigenschaftenaus. Klicken Sie auf der Seite Allgemeine Eigenschaften auf die Schaltfläche Neuen Verweis hinzufügen .

  2. Wählen Sie im linken Bereich Projektmappeaus, und aktivieren Sie dann das entsprechende Kontrollkästchen im rechten Bereich.

  3. Fügen Sie nötigenfalls in den Quellcodedateien eine #include -Anweisung für die DLL-Headerdatei hinzu.

So verweisen Sie auf eine standardmäßige DLL-Binärdatei

  1. Kopieren Sie die DLL-Datei, die LIB-Datei und die Headerdatei. Fügen Sie sie an einem bekannten Speicherort ein, z. B. in den aktuellen Projektordner.

  2. Öffnen Sie das Kontextmenü für das Projekt, das die DLL verwendet, und wählen Sie dann Eigenschaftenaus. Fügen Sie die LIB-Datei auf der Seite Konfigurationseigenschaften, Linker, Eingabe als Abhängigkeit hinzu.

  3. Fügen Sie nötigenfalls in den Quellcodedateien eine #include -Anweisung für die DLL-Headerdatei hinzu.

So migrieren Sie eine vorhandene Win32-DLL für die UWP-App-Kompatibilität

  1. Erstellen Sie ein Projekt des DLL-Typs (Universelle Windows-Datei), und fügen Sie den vorhandenen Quellcode hinzu.

  2. Fügen Sie #include winapifamily.h diese Headerdatei aus dem Windows SDK für UWP-Apps hinzu, und legen Sie das Makro WINAPI_FAMILY=WINAPI_PARTITION_APPfest.

  3. Fügen Sie nötigenfalls in den Quellcodedateien eine #include -Anweisung für die DLL-Headerdatei hinzu.