ladit knihovny dll v Visual Studio (C#, C++, Visual Basic, F #)
Knihovna DLL (dynamická knihovna) je knihovna, která obsahuje kód a data, která lze použít více než jednou aplikací. pomocí Visual Studio můžete vytvářet, sestavovat, konfigurovat a ladit knihovny dll.
Vytvoření knihovny DLL
následující Visual Studio šablony projektů mohou vytvořit knihovny dll:
- knihovna tříd C#, Visual Basic nebo F #
- knihovna jazyka C# nebo Visual Basic model Windows Forms Control (WCF)
- Knihovna Dynamic-Link C++ (DLL)
Další informace naleznete v tématu techniky ladění knihovny MFC.
Ladění knihovny WCF je podobné ladění knihovny tříd. podrobnosti najdete v tématu model Windows Forms controls.
Obvykle je volána knihovna 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í DLL
když použijete šablonu projektu Visual Studio k vytvoření aplikace, aplikace Visual Studio automaticky vytvoří požadované nastavení pro konfiguraci ladění a sestavení verze. V případě potřeby můžete tato nastavení změnit. Další informace najdete v následujících článcích:
- Nastavení projektu pro konfiguraci ladění jazyka C++
- nastavení Project pro konfigurace ladění v jazyce C#
- Nastavení projektu pro konfiguraci ladění jazyka Visual Basic
- Postupy: nastavení konfigurace ladění a vydání
Nastavení DebuggableAttribute C++
Aby se ladicí program připojil k knihovně DLL jazyka C++, musí generovat kód C++ DebuggableAttribute .
Nastavit DebuggableAttribute :
Vyberte projekt C++ DLL v Průzkumník řešení a vyberte ikonu vlastnosti , nebo klikněte pravým tlačítkem myši na projekt a vyberte možnost vlastnosti.
V podokně vlastnosti v části ladění linkeru > vyberte Ano (/ASSEMBLYDEBUG) pro Laditelné sestavení.
Další informace najdete v tématu /ASSEMBLYDEBUG.
Nastavit umístění souborů DLL jazyka C/C++
Chcete-li ladit externí knihovnu DLL, volající projekt musí být schopný najít knihovnu DLL, její soubor. pdba všechny další soubory, které knihovna DLL vyžaduje. Můžete vytvořit vlastní úlohu sestavení pro zkopírování těchto souborů do výstupní složky <project folder> \debug. nebo můžete zkopírovat soubory ručně.
Pro projekty C/C++ můžete nastavit umístění souborů hlaviček a LIB na stránkách vlastností projektu místo jejich kopírování do výstupní složky.
Chcete-li nastavit hlavičku C/C++ a umístění souborů LIB:
Vyberte projekt knihovny DLL jazyka C/C++ v Průzkumník řešení a vyberte ikonu vlastnosti , nebo klikněte pravým tlačítkem na projekt a vyberte možnost vlastnosti.
V horní části podokna vlastností vyberte v části Konfigurace možnost všechny konfigurace.
V části Obecné další adresáře k zahrnutí v C/C++ > > určete složku, která obsahuje soubory hlaviček.
V části linker > Obecné > Další adresáře knihoven zadejte složku, která obsahuje soubory LIB.
V části linker > vstup > Další závislosti zadejte úplnou cestu a název souboru pro soubory LIB.
Vyberte OK.
další informace o nastavení projektu c++ naleznete v tématu Windows odkaz na stránku vlastností c++.
Sestavení ladicí verze
Než začnete s laděním, nezapomeňte sestavit ladicí verzi knihovny DLL. Chcete-li ladit knihovnu DLL, volající aplikace musí být schopna najít soubor. pdb a všechny další soubory, které knihovna DLL vyžaduje.
Můžete vytvořit vlastní úlohu sestavení ke zkopírování souborů DLL do výstupní složky <calling project folder> \debug. nebo můžete zkopírovat soubory ručně.
Ujistěte se, že je knihovna DLL volána ve správném umístění. To se může zdát zřejmé, ale pokud volající aplikace najde a načte jinou kopii knihovny DLL, ladicí program nikdy neobjeví zarážky, které jste nastavili.
Ladění knihovny DLL
Knihovnu DLL nelze spustit přímo. Musí ji volat aplikace, obvykle soubor .exe . další informace naleznete v tématu Visual Studio projekty – C++.
Chcete-li ladit knihovnu DLL, můžete Spustit ladění z volající aplikacenebo LADIT z projektu knihovny DLL zadáním jeho volající aplikace. Můžete také použít okno ladicího programu pro vyhodnocení funkcí DLL nebo metod v době návrhu bez použití volající aplikace.
Další informace najdete v tématu první pohled na ladicí program.
Spustit ladění z volající aplikace
Aplikace, která volá knihovnu DLL, může být:
- Aplikace z Visual Studio projektu ve stejném nebo jiném řešení než knihovna DLL.
- Existující aplikace, která je už nasazená a spuštěná v testovacím nebo produkčním počítači.
- Umístěný na webu a k němu se přistupoval prostřednictvím adresy URL.
- Webová aplikace s webovou stránkou, která vloží knihovnu DLL.
Chcete-li ladit knihovnu DLL z volající aplikace, můžete:
Otevřete projekt pro volající aplikaci a spusťte ladění výběrem ladění > Spustit ladění nebo stisknutím klávesy F5.
nebo
Připojte se k aplikaci, která je už nasazená a spuštěná v testovacím nebo produkčním počítači. Tuto metodu použijte pro knihovny DLL na webech nebo ve webových aplikacích. Další informace najdete v tématu Postup: připojení ke spuštěnému procesu.
Než začnete ladit volající aplikaci, nastavte zarážku v knihovně DLL. Viz použití zarážek. Když je dosaženo zarážky knihovny DLL, můžete krokovat kód a pozorovat akci na každém řádku. Další informace naleznete v tématu Navigace v kódu v ladicím programu.
Během ladění můžete pomocí okna moduly ověřit knihovny DLL a soubory .exe , které aplikace načítá. chcete-li otevřít okno moduly , vyberte ladění > Windows > moduly. Další informace najdete v tématu Postupy: použití okna moduly.
Použít příkazové okno
Můžete použít okamžité okno k vyhodnocení funkcí knihoven DLL nebo metod v době návrhu. Příkazové okno hraje roli volající aplikace.
Poznámka
Můžete použít okamžité okno v době návrhu a většinu typů projektů. pro SQL, webové projekty ani skripty se nepodporuje.
Chcete-li například testovat metodu s názvem Test ve třídě Class1 :
otevřete projekt knihovny DLL a otevřete okno okamžité výběrem možnosti ladění > Windows > okamžité nebo stisknutím klávesy Ctrl + Alt + + .
Vytvořte instanci objektu typu tak, že do příkazového
Class1okna zadáte následující kód jazyka C# a stisknete klávesu 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é. Pokud se služba jazyka pokusí vyhodnocení výrazu, musí být všechny metody a proměnné v aktuálním oboru a kontextu.
Za předpokladu, že
Testpřijímá jedenintparametr, se vyhodnotí pomocí příkazovéhoTestpodokna :?obj.Test(10);Výsledek se vytiskne v příkazovém okně.
Můžete pokračovat v ladění
Testtak, že do něj zadáte zarážku a pak funkci vyhodnocujete znovu.Zarážka bude dosaženo a můžete krokovat
Test. Po spuštění zůstaneTestladicí program zpátky v režimu návrhu.
Ladění ve smíšeném režimu
Můžete napsat volající aplikaci pro knihovnu DLL ve spravovaném nebo nativním kódu. Pokud vaše nativní aplikace volá spravovanou knihovnu DLL a chcete ladit obojí, můžete povolit spravované i nativní ladicí programy ve vlastnostech projektu. Přesný proces závisí na tom, zda chcete spustit ladění z projektu knihovny DLL nebo projektu volání aplikace. Další informace najdete v tématu Postup: ladění ve smíšeném režimu.
Nativní knihovnu DLL můžete také ladit ze spravovaného volajícího projektu. Další informace najdete v tématu Postup ladění spravovaného a nativního kódu.