Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En DLL (dynamic-link library) är ett bibliotek som innehåller kod och data som kan användas av mer än en app. Du kan använda Visual Studio för att skapa, skapa, konfigurera och felsöka DLL:er.
Skapa en DLL
Följande Visual Studio-projektmallar kan skapa DLL:er:
- Klassbibliotek (.NET, .NET Framework och andra appplattformar)
- Kontrollbibliotek för Windows Forms (.NET och .NET Framework)
- Dynamic-Link-bibliotek (DLL) (C++)
Felsökning av ett Kontrollbibliotek för Windows Forms liknar felsökning av ett klassbibliotek. Mer information finns i Windows Forms Controls.
Du anropar vanligtvis en DLL från ett annat projekt. När du felsöker det anropande projektet kan du, beroende på DLL-konfigurationen, gå in och felsöka DLL-koden.
Felsökningskonfiguration för DLL
När du använder en Visual Studio-projektmall för att skapa en app, skapar Visual Studio automatiskt de nödvändiga inställningarna för Debugging- och Release-konfigurationer. Du kan ändra de här inställningarna om det behövs. Mer information finns i följande artiklar:
- Så här gör du: Ange konfigurationer för felsökning och lansering
- Projektinställningar för en C++-felsökningskonfiguration
- Projektinställningar för felsökningskonfigurationer för .NET C#
- Projektinställningar för C#-felsökningskonfigurationer
- Projektinställningar för en Visual Basic-felsökningskonfiguration
Ange C++ DebuggableAttribute
För att felsökaren ska ansluta till en C++ DLL måste C++-koden generera DebuggableAttribute.
Så här anger du DebuggableAttribute:
Välj C++ DLL-projektet i Solution Explorer och välj ikonen Egenskaper , eller högerklicka på projektet och välj Egenskaper.
I fönstret Egenskaper, under Länkare>Felsökning, väljer du Ja (/ASSEMBLYDEBUG) för Avlusningsbar Assembly.
Mer information finns i /ASSEMBLYDEBUG.
Ange C/C++ DLL-filplatser
Om du vill felsöka en extern DLL måste ett anropande projekt kunna hitta DLL:en, dess .pdb-fil och alla andra filer som DLL kräver. Du kan skapa en anpassad bygguppgift för att kopiera filerna till projektmappen<>\Felsöka utdatamappen, eller så kan du kopiera filerna där manuellt.
För C/C++-projekt kan du ange huvud- och LIB-filplatser på projektegenskapssidorna i stället för att kopiera dem till utdatamappen.
Så här anger du C/C++-huvud och LIB-filplatser:
Välj C/C++ DLL-projektet i Solution Explorer och välj ikonen Egenskaper , eller högerklicka på projektet och välj Egenskaper.
Längst upp i fönstret Egenskaper går du till Konfiguration och väljer Alla konfigurationer.
Under C/C++>Allmänt>Ytterligare inkludera kataloger anger du den mapp som har huvudfiler.
Under Linker>Allmänna>ytterligare bibliotekskataloger anger du den mapp som har LIB-filer.
Under Linker>Indata>Ytterligare beroenden anger du den fullständiga sökvägen och filnamnet för LIB-filerna.
Välj OK.
Mer information om C++-projektinställningar finns i referens för windows C++-egenskapssidan.
Skapa en felsökningsversion
Kom ihåg att skapa en felsökningsversion av DLL innan du börjar felsöka. Om du vill felsöka en DLL måste en anropande app kunna hitta sin .pdb-fil och alla andra filer som DLL kräver. Mer information finns i How to: Set Debug and Release configurations (Så här anger du felsöknings- och versionskonfigurationer).
Du kan skapa en anpassad bygguppgift för att kopiera DLL-filerna till den <anropande projektmappen>\Felsöka utdatamappen, eller så kan du kopiera filerna där manuellt.
Se till att anropa DLL:en på rätt plats. Detta kan verka uppenbart, men om en anropande app hittar och läser in en annan kopia av DLL-filen kommer felsökaren aldrig att träffa de brytpunkter som du anger.
Felsöka en DLL
Du kan inte köra en DLL direkt. Den måste anropas av en app, vanligtvis en .exe fil.
Om du vill felsöka en DLL kan du börja felsöka från den anropande appen eller felsöka från DLL-projektet genom att ange dess anropande app. Du kan också använda felsökningsprogrammets omedelbara fönster för att utvärdera DLL-funktioner eller -metoder vid designtillfället, utan att använda en anropande app.
Börja felsöka från den anropande appen
Appen som anropar en DLL kan vara:
- En app från ett Visual Studio-projekt i samma eller en annan lösning än DLL-filen.
- En befintlig app som redan har distribuerats och körs på en test- eller produktionsdator.
- Finns på webben och nås via en URL.
- En webbapp med en webbsida som bäddar in DLL:en.
Innan du börjar felsöka den anropande appen anger du en brytpunkt i DLL-filen. Se Kom igång med brytpunkter. När DLL-brytpunkten nås kan du gå igenom koden och observera åtgärden på varje rad. Mer information finns i Navigera kod i felsökningsprogrammet.
Om du vill felsöka en DLL från en anropande app kan du:
Öppna projektet för den anropande appen och börja felsöka genom att välja Felsöka>Starta felsökning eller trycka på F5.
eller
Koppla till en app som redan har distribuerats och körs på en test- eller produktionsdator. Använd den här metoden för DLL:er på webbplatser eller i webbappar. Mer information finns i Så här ansluter du till en process som körs.
Under felsökningen kan du använda fönstret Moduler för att verifiera DLL:er och .exe filer som appen läser in. Om du vill öppna fönstret Moduler väljer du Felsöka>Windows-moduler> under felsökning. Mer information finns i How to: Use the Modules window (Så här gör du: Använd fönstret Moduler).
Använd fönstret Omedelbart
Du kan använda fönstret Omedelbart för att utvärdera DLL-funktioner eller -metoder vid designtillfället. Fönstret Omedelbar spelar rollen som en anropande app.
Anmärkning
Du kan använda fönstret Omedelbart vid designtillfället med de flesta projekttyper. Det stöds inte för SQL, webbprojekt eller skript.
Om du till exempel vill testa en metod med namnet Test i klassen Class1:
När DLL-projektet är öppet öppnar du fönstret Omedelbart genom att välja Felsöka>Windows>Immediate eller trycka på Ctrl+Alt+I.
Instansiera ett objekt av typen
Class1genom att skriva följande C#-kod i fönstret Omedelbart och trycka på Retur. Den här hanterade koden fungerar för C# och Visual Basic med lämpliga syntaxändringar:Class1 obj = new Class1();I C# måste alla namn vara fullständigt kvalificerade. Alla metoder eller variabler måste finnas i det aktuella omfånget och kontexten när språktjänsten försöker utvärdera uttrycket.
Anta att
Testtar enintparameter, utvärderaTestmed hjälp av fönstret Omedelbar:.?obj.Test(10);Resultatet skrivs ut i fönstret Omedelbart .
Du kan fortsätta att felsöka
Testgenom att placera en brytpunkt i den och sedan utvärdera funktionen igen.Brytpunkten kommer att träffas och du kan gå igenom
Test. När körningen har avslutats och lämnatTest, är felsökningsprogrammet tillbaka i designläge.
Felsökning i blandat läge
Du kan skriva en anropande app för en DLL i hanterad eller intern kod. Om din interna app anropar en hanterad DLL och du vill felsöka båda kan du aktivera både de hanterade och interna felsökningarna i projektegenskaperna. Den exakta processen beror på om du vill börja felsöka från DLL-projektet eller det anropande appprojektet. Mer information finns i Så här felsöker du i blandat läge.
Du kan också felsöka en intern DLL från ett hanterat samtalsprojekt. Mer information finns i Så här felsöker du hanterad och intern kod.
Relaterat innehåll
- Felsöka hanterad kod
- Förbereda för felsökning av C++-projekt
- C#-, F#- och Visual Basic-projekttyper
- Projektinställningar för en C++-felsökningskonfiguration
- Projektinställningar för felsökningskonfigurationer för .NET C#
- Projektinställningar för C#-felsökningskonfigurationer
- Projektinställningar för en Visual Basic-felsökningskonfiguration
- Felsökningssäkerhet