Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Библиотека DLL (библиотека динамической компоновки) — это библиотека, содержащая код и данные, которые могут использоваться несколькими приложениями. Visual Studio можно использовать для создания, сборки, настройки и отладки DLL-библиотек.
Создание библиотеки DLL
Следующие шаблоны проектов Visual Studio могут создавать библиотеки DLL:
- Библиотека классов (.NET, .NET Framework и другие платформы приложений)
- Библиотека элементов управления Windows Forms (.NET и .NET Framework)
- библиотека Dynamic-Link (DLL) (C++)
Отладка библиотеки элементов управления Windows Forms аналогична отладке библиотеки классов. Дополнительные сведения см. в разделе "Элементы управления Windows Forms".
Обычно вы вызываете библиотеку DLL из другого проекта. При отладке вызывающего проекта в зависимости от конфигурации DLL можно выполнить пошаговую отладку кода DLL.
Конфигурация отладки DLL
При использовании шаблона проекта Visual Studio для создания приложения Visual Studio автоматически создает необходимые параметры для конфигураций сборки Debug и Release. При необходимости эти параметры можно изменить. Дополнительные сведения см. в следующих статьях:
- Практическое руководство. Настройка конфигураций отладки и выпуска
- Параметры проекта для конфигурации отладки C++
- Параметры проекта для конфигураций отладки .NET C#
- Параметры проекта для конфигураций отладки C#
- Параметры проекта для конфигурации отладки Visual Basic
Установка атрибута отладки C++ DebuggableAttribute
Для подключения отладчика к DLL на C++ код должен генерировать DebuggableAttribute
.
Для установки DebuggableAttribute
:
Выберите проект DLL C++ в обозревателе решений и щелкните значок "Свойства " или щелкните проект правой кнопкой мыши и выберите "Свойства".
В области "Свойства", в разделе "Линковщик">Отладка, выберите "Да" (/ASSEMBLYDEBUG) для Отладочной Сборки.
Дополнительные сведения см. в разделе /ASSEMBLYDEBUG.
Установка расположений DLL-файлов C/C++
Для отладки внешней библиотеки DLL вызывающий проект должен иметь возможность найти библиотеку DLL, PDB-файл и любые другие файлы, необходимые библиотеке DLL. Вы можете создать настраиваемую задачу сборки, чтобы скопировать эти файлы в <папку проекта\Отладочную выходную папку> или скопировать их вручную.
Для проектов C/C++ можно задать расположения заголовков и LIB-файлов на страницах свойств проекта, а не копировать их в выходную папку.
Чтобы задать расположения заголовков C/C++ и LIB-файлов:
Выберите проект DLL C/C++ в обозревателе решений и щелкните значок "Свойства " или щелкните проект правой кнопкой мыши и выберите "Свойства".
В верхней части области "Свойства " в разделе "Конфигурация" выберите "Все конфигурации".
В разделе C/C++>Общие>Дополнительные каталоги включения укажите каталог, содержащий файлы заголовков.
В компоновщике>Общие>дополнительные каталоги библиотек укажите папку с файлами LIB.
В компоновщике>ввод>, в поле"Дополнительные зависимости" укажите полный путь и имя файла для LIB-файлов.
Нажмите ОК.
Дополнительные сведения о параметрах проекта C++ см. на странице свойств Windows C++.
Создание версии отладки
Перед началом отладки обязательно создайте отладочную версию библиотеки DLL. Чтобы выполнить отладку библиотеки DLL, вызывающее приложение должно иметь возможность найти его PDB-файл и любые другие файлы, необходимые библиотеке DLL. Дополнительные сведения см. в разделе "Практическое руководство. Настройка конфигураций отладки и выпуска".
Можно создать настраиваемую задачу сборки, чтобы скопировать файлы DLL в вызываемую< папку проекта\Отладочную выходную папку> или скопировать файлы вручную.
Обязательно вызовите библиотеку DLL в правильном расположении. Это может показаться очевидным, но если вызывающее приложение находит и загружает другую копию библиотеки DLL, отладчик никогда не достигнет заданных точек останова.
Отладка библиотеки DLL
Не удается запустить библиотеку DLL напрямую. Он должен вызываться приложением, как правило, файлом.exe .
Для отладки библиотеки DLL можно начать отладку из вызывающего приложения или выполнить отладку из проекта DLL , указав его вызывающее приложение. Вы также можете использовать окно интерпретации отладчика для оценки функций или методов DLL во время разработки без использования вызывающего приложения.
Запуск отладки из вызывающего приложения
Приложение, которое вызывает библиотеку DLL, может быть следующим:
- Приложение из проекта Visual Studio в том же или другом решении, что и библиотека DLL.
- Существующее приложение, которое уже развернуто и запущено на тестовом или рабочем компьютере.
- Находится в Интернете и доступен через URL-адрес.
- Веб-приложение с веб-страницей, которая внедряет библиотеку DLL.
Перед началом отладки вызывающего приложения установите точку останова в библиотеке DLL. См. статью «Как начать работу с точками останова». При достижении точки останова библиотеки DLL можно пошагово пройти код, наблюдая за действием в каждой строке. Дополнительные сведения см. в разделе "Навигация по коду" в отладчике.
Чтобы выполнить отладку библиотеки DLL из вызывающего приложения, можно:
Откройте проект для вызывающего приложения и начните отладку, нажав кнопку ">Начать отладку " или нажав клавишу F5.
или
Подключитесь к приложению, которое уже развернуто и запущено на тестовом или рабочем компьютере. Используйте этот метод для библиотек DLL на веб-сайтах или в веб-приложениях. Дополнительные сведения см. в разделе "Практическое руководство. Присоединение к запущенным процессам".
Во время отладки можно использовать окно модулей для проверки библиотек DLL и .exe файлов, загружаемых приложением. Чтобы открыть окно "Модули" во время отладки, выберите "Отладка>модулейWindows>". Дополнительные сведения см. в разделе "Практическое руководство. Использование окна модулей".
Использование окна немедленного выполнения
Вы можете использовать окно интерпретации для оценки функций или методов DLL во время разработки. Окно Immediate играет роль вызывающего приложения.
Замечание
Окно интерпретации можно использовать во время разработки с большинством типов проектов. Она не поддерживается для SQL, веб-проектов или скриптов.
Например, чтобы проверить метод с именем Test
в классе Class1
:
Открыв проект DLL, откройте окно интерпретации, выбрав "Отладка>Windows>Интерпретация" или нажав клавиши CTRL+ALT+I.
Создайте экземпляр объекта типа
Class1
, введя следующий код C# в окне немедленного выполнения и нажав клавишу Enter. Этот управляемый код работает для C# и Visual Basic с соответствующими изменениями синтаксиса:Class1 obj = new Class1();
В C# все имена должны быть полностью квалифицированы. Все методы или переменные должны находиться в текущей области и контексте, когда служба языка пытается оценить выражение.
Предположим, что
Test
принимает одинint
параметр, проанализируйтеTest
с помощью окна непосредственного выполнения:?obj.Test(10);
Результат выводится в окне Немедленное.
Вы можете продолжить отладку
Test
, разместив точку останова внутри нее, а затем снова оценивая функцию.Точка останова будет достигнута, и вы можете пошагово пройти через
Test
. После завершения выполненияTest
отладчик вернется в режим разработки.
Отладка в смешанном режиме
Вы можете написать вызывающее приложение для библиотеки DLL в управляемом или машинном коде. Если собственное приложение вызывает управляемую библиотеку DLL и хотите отладить оба, можно включить управляемые и собственные отладчики в свойствах проекта. Точный процесс зависит от того, нужно ли начать отладку с DLL-проекта или проекта вызывающего приложения. Дополнительные сведения см. в разделе "Практическое руководство. Отладка в смешанном режиме".
Вы также можете выполнить отладку собственной библиотеки DLL из управляемого вызывающего проекта. Дополнительные сведения см. в разделе "Отладка управляемого и машинного кода".
Связанный контент
- Отладка управляемого кода
- Подготовка к отладке проектов C++
- Типы проектов для C#, F# и Visual Basic
- Параметры проекта для конфигурации отладки C++
- Параметры проекта для конфигураций отладки .NET C#
- Параметры проекта для конфигураций отладки C#
- Параметры проекта для конфигурации отладки Visual Basic
- Безопасность отладчика