Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Knihovna DLL (dynamická knihovna) je knihovna, která obsahuje kód a data, která může používat více než jedna aplikace. Pomocí sady Visual Studio můžete vytvářet, sestavovat, konfigurovat a ladit knihovny DLL.
Vytvořte knihovnu DLL
Následující šablony projektů sady Visual Studio mohou vytvářet knihovny DLL:
- Knihovna tříd (.NET, .NET Framework a další aplikační platformy)
- Knihovna ovládacích prvků Windows Forms (.NET a .NET Framework)
- knihovna Dynamic-Link (DLL) (C++)
Ladění knihovny ovládacích prvků Modelu Windows Forms je podobné ladění knihovny tříd. Další informace naleznete v tématu Windows Forms Ovládací prvky.
Obvykle voláte knihovnu DLL z jiného projektu. Při ladění volajícího projektu v závislosti na konfiguraci knihovny DLL můžete krokovat a ladit kód knihovny DLL.
Konfigurace ladění knihovny DLL
Když k vytvoření aplikace použijete šablonu projektu sady Visual Studio, Visual Studio automaticky vytvoří požadovaná nastavení pro konfigurace sestavení pro ladění a vydání. V případě potřeby můžete tato nastavení změnit. Další informace najdete v následujících článcích:
- Postupy: Nastavení konfigurací ladění a vydaných verzí
- Nastavení projektu pro konfiguraci ladění jazyka C++
- Nastavení projektu pro ladicí konfigurace v .NET C#
- Nastavení projektu pro konfigurace ladění jazyka C#
- Nastavení projektu pro konfiguraci ladění jazyka Visual Basic
Nastavení atributu C++ DebuggableAttribute
Aby se ladicí program připojil k knihovně DLL jazyka C++, musí kód jazyka C++ vygenerovat DebuggableAttribute.
Nastavit DebuggableAttribute:
V Průzkumníku řešení vyberte projekt knihovny DLL jazyka C++ a vyberte ikonu Vlastnosti nebo klikněte pravým tlačítkem myši na projekt a vyberte Vlastnosti.
V podokně Vlastnosti v částiLadění> vyberte možnost Ano (/ASSEMBLYDEBUG) pro ladění sestavení.
Další informace naleznete v tématu /ASSEMBLYDEBUG.
Umístění souborů DLL pro C/C++
Chcete-li ladit externí knihovnu DLL, volající projekt musí být schopen najít knihovnu DLL, jeho soubor .pdb a všechny ostatní soubory, které knihovna DLL vyžaduje. Můžete vytvořit vlastní úlohu sestavení, která tyto soubory zkopíruje do složky<> projektu\Debug, nebo můžete soubory zkopírovat ručně.
U projektů C/C++ můžete nastavit umístění hlaviček a souborů LIB na stránkách vlastností projektu místo jejich kopírování do výstupní složky.
Nastavte umístění souborů hlaviček C/C++ a souborů LIB:
V Průzkumníku řešení vyberte projekt knihovny DLL C/C++ a vyberte ikonu Vlastnosti nebo klikněte pravým tlačítkem myši na projekt a vyberte Vlastnosti.
V horní části podokna Vlastnosti v části Konfigurace vyberte Všechny konfigurace.
V části C/C++>Obecné>Další adresáře pro zahrnutí zadejte složku, která obsahuje soubory hlaviček.
Ve části Linker>Obecné>Adresáře dodatečných knihoven zadejte složku, která obsahuje soubory LIB.
V částiLinker Input> vstupu >) zadejte úplnou cestu a název souboru pro soubory LIB.
Vyberte OK.
Další informace o nastavení projektu jazyka C++ naleznete v referenčních informacích na stránce vlastností systému Windows C++.
Sestavení verze ladění
Nezapomeňte sestavit ladicí verzi knihovny DLL před zahájením ladění. Chcete-li ladit knihovnu DLL, volající aplikace musí být schopna najít soubor .pdb a všechny ostatní soubory, které knihovna DLL vyžaduje. Další informace naleznete v tématu Postupy: Nastavení konfigurace ladění a vydané verze.
Můžete vytvořit vlastní úlohu sestavení, která zkopíruje soubory DLL do <složky volajícího projektu\Ladit výstupní složku>, nebo můžete soubory zkopírovat ručně.
Nezapomeňte zavolat knihovnu DLL ve správném umístění. Může to vypadat jako běžné, ale pokud volající aplikace najde a načte jinou kopii knihovny DLL, ladicí program nikdy nenarazí na zarážky, které jste nastavili.
Ladění knihovny DLL
Knihovnu DLL nelze spustit přímo. Musí ji volat aplikace, obvykle soubor.exe .
Chcete-li ladit knihovnu DLL, můžete spustit ladění z volající aplikace nebo ladit z projektu knihovny DLL zadáním jeho volající aplikace. Pomocí příkazového okna ladicího programu můžete také vyhodnotit funkce knihovny DLL nebo metody v době návrhu bez použití volající aplikace.
Zahájit ladění z volající aplikace
Aplikace, která volá knihovnu DLL, může být:
- Aplikace z projektu sady Visual Studio ve stejném nebo jiném řešení než knihovna DLL.
- Existující aplikace, která je už nasazená a spuštěná na testovacím nebo produkčním počítači.
- Nachází se na webu a přistupuje se přes adresu URL.
- Webová aplikace s webovou stránkou, která vkládá knihovnu DLL.
Než začnete ladit volající aplikaci, nastavte zarážku v knihovně DLL. Viz Začínáme s body přerušení. Když je zasažen bod přerušení v knihovně DLL, můžete procházet kód a pozorovat akci na každém řádku. Další informace naleznete v tématu Navigace kódu v ladicím programu.
Pokud chcete ladit knihovnu DLL z volající aplikace, můžete:
Otevřete projekt pro volající aplikaci a spusťte ladění výběrem > možnostiSpustit ladění nebo stisknutím klávesy F5.
nebo
Připojte se k aplikaci, která je už nasazená a spuštěná na testovacím nebo produkčním počítači. Tuto metodu použijte pro knihovny DLL na webech nebo webové aplikace. Další informace naleznete v tématu Postupy: Připojení ke spuštěném procesu.
Během ladění můžete pomocí okna Moduly ověřit knihovny DLL a .exe soubory, které aplikace načte. Pokud chcete otevřít okno Moduly, při ladění vyberte Ladit>moduly>. Další informace naleznete v tématu Postupy: Použití okna Moduly.
Použití okna Okamžité
Pomocí okna Immediate můžete vyhodnotit funkce knihovny DLL nebo metody při návrhu. Okamžité okno hraje roli volající aplikace.
Poznámka:
V době návrhu můžete použít okno Okamžité s většinou typů projektů. Nepodporuje se pro SQL, webové projekty ani skripty.
Pokud chcete například otestovat metodu pojmenovanou Test ve třídě Class1:
Při otevřeném projektu DLL otevřete okno Immediate výběrem možnosti Ladit>Windows>Immediate nebo stisknutím Ctrl+Alt+I.
Vytvořte instanci objektu typu
Class1zadáním následujícího kódu jazyka C# do příkazového okna a stisknutím klávesy Enter. Tento spravovaný kód funguje pro C# a Visual Basic s odpovídajícími změnami syntaxe:Class1 obj = new Class1();V jazyce C# musí být všechny názvy plně kvalifikované. Všechny metody nebo proměnné musí být v aktuálním oboru a kontextu, když se služba jazyka pokusí vyhodnotit výraz.
Za předpokladu, že
Testpřebírá jedenintparametr, vyhodnoťteTestpomocí okna Okamžitý:?obj.Test(10);Výsledek se vytiskne v okně Okamžité .
Můžete pokračovat v ladění
Testtím, že do něj umístíte bod přerušení, a pak funkci znovu vyhodnotíte.Bod přerušení bude dosažen a můžete procházet
Test. Po ukončení vykonáváníTestse ladicí program vrátí zpět do režimu návrhu.
Ladění ve smíšeném režimu
Volající aplikaci pro knihovnu DLL můžete napsat ve spravovaném nebo nativním kódu. Pokud nativní aplikace volá spravovanou knihovnu DLL a chcete ladit obojí, můžete ve vlastnostech projektu povolit spravované i nativní ladicí programy. Přesný proces závisí na tom, jestli chcete spustit ladění z projektu knihovny DLL nebo z projektu, který aplikaci volá. Další informace naleznete v tématu Postupy: Ladění ve smíšeném režimu.
Nativní knihovnu DLL můžete také ladit ze spravovaného volajícího projektu. Další informace naleznete v tématu Ladění spravovaného a nativního kódu.
Související obsah
- Ladění spravovaného kódu
- Příprava na ladění projektů C++
- typy projektů jazyka C#, F# a Visual Basic
- Nastavení projektu C++ pro konfiguraci ladění
- Nastavení projektu pro ladicí konfigurace v .NET C#
- Nastavení projektu pro konfigurace ladění jazyka C#
- Nastavení projektu pro konfiguraci ladění jazyka Visual Basic
- zabezpečení ladicího programu