Где найти dll файлы visual studio
Где находятся стандартные процедуры записи
Где находятся стандартные процедуры записи для справочников и документов? Чтобы их отменить, и.
Где в тулбоксе находятся стандартные элементы управления?
Откуда брать готовые кнопки, контейнеры, листбоксы и др.? Не судите строго, знаю что здесь решаются.
Реализация функций из библиотеки math.h
Нужно написать прогу реализующая 4 функции из библиотеки math.h с помощь классов!
Список всех функций библиотеки Math
Gde mozhno nayti spisok vsex funkcii is biblioteki Math ??
Файлы среды выполнения C (CRT) и библиотеки стандартных библиотек C++ (STL) .lib
В этом разделе перечислены файлы библиотеки времени выполнения Microsoft C .lib , которые можно связать при разработке приложения, а также связанные с ними параметры компилятора и директивы препроцессора.
Сведения о развертывании файлов среды выполнения C, необходимых для поддержки приложения, см. в разделе распространение файлов Visual C++ .
См. раздел Справочник по библиотеке времени выполнения c , если вы ищете Справочник по API для библиотеки времени выполнения c.
Файлы среды выполнения C .lib
Библиотека времени выполнения C (CRT) является частью стандартной библиотеки C++, которая включает стандартную библиотеку ISO C. Библиотеки Visual C++, которые реализуют CRT, поддерживают разработку с использованием машинного кода, а также сочетания машинного и управляемого кода. Все версии библиотек CRT поддерживают разработку многопоточного кода. Большинство библиотек поддерживает как статическое связывание (для связывания библиотеки непосредственно в коде), так и динамическое связывание (для использования в коде общих библиотек DLL).
Начиная с Visual Studio 2015, был проведен рефакторинг CRT, повлекший создание новых двоичных файлов. Универсальная библиотека CRT (UCRT) содержит функции и глобальные переменные, экспортируемые стандартной библиотекой CRT C99. UCRT теперь является компонентом Windows и поставляется в составе Windows 10. Статическая библиотека, DLL-библиотека импорта и файлы заголовков для UCRT теперь входят в пакет SDK для Windows 10. При установке Visual C++ программа установки Visual Studio устанавливает набор компонентов из пакета SDK для Windows 10, необходимых для использования UCRT. Библиотеку UCRT можно использовать в любой версии Windows, поддерживаемой Visual Studio 2015 и более поздними версиями. Ее можно распространять с помощью vcredist для поддерживаемых версий Windows (кроме Windows 10). Дополнительные сведения см. в разделе Распространение файлов Visual C++.
В следующей таблице перечислены библиотеки, которые реализуют UCRT.
Библиотека | Связанная DLL | Характеристики | Параметр | Директивы препроцессора |
---|---|---|---|---|
libucrt.lib | None | Статически связывает UCRT в коде. | /MT | _MT |
libucrtd.lib | None | Отладочная версия UCRT для статического связывания. Нераспространяемый компонент. | /MTd | _DEBUG , _MT |
ucrt.lib | ucrtbase.dll | DLL-библиотека импорта для UCRT. | /MD | _MT , _DLL |
ucrtd.lib | ucrtbased.dll | DLL-библиотека импорта для отладочной версии UCRT. Нераспространяемый компонент. | /MDd | _DEBUG , _MT , _DLL |
Библиотека vcruntime содержит код Visual C++, определяемый реализацией CRT (такой как поддержка обработки исключений и отладки), проверки времени выполнения, сведения о типах, сведения о реализации и некоторые расширенные функции библиотеки. Версия библиотеки vcruntime должна совпадать с версией компилятора, который вы используете.
В этой таблице перечислены библиотеки, которые реализуют библиотеку vcruntime.
Библиотека | Связанная DLL | Характеристики | Параметр | Директивы препроцессора |
---|---|---|---|---|
libvcruntime.lib | None | Статически связанная с кодом. | /MT | _MT |
libvcruntimed.lib | None | Отладочная версия для статического связывания. Нераспространяемый компонент. | /MTd | _MT , _DEBUG |
vcruntime.lib | vcruntime.dll | DLL-библиотека импорта для vcruntime. | /MD | _MT , _DLL |
vcruntimed.lib | vcruntimed.dll | DLL-библиотека импорта для отладочной версии vcruntime. Нераспространяемый компонент. | /MDd | _DEBUG , _MT , _DLL |
При рефакторинге UCRT функции среда выполнения с параллелизмом были перемещены в concrt140.dll , которые были добавлены в распространяемый пакет C++. Эта библиотека DLL необходима для параллельных контейнеров и алгоритмов C++, таких как concurrency::parallel_for . кроме того, стандартная библиотека C++ требует, чтобы эта библиотека DLL в Windows XP поддерживала примитивы синхронизации, так как Windows XP не имеет переменных условия.
Код, инициализирующий CRT, находится в одной из нескольких библиотек в зависимости от статического или динамического связывания библиотеки CRT и использования машинного, управляемого или смешанного кода. Этот код обрабатывает запуск, инициализацию внутренних данных потоков и завершение CRT. Он зависит от используемой версии компилятора. Эта библиотека всегда статически связана, даже при использовании динамически связанной библиотеки UCRT.
В этой таблице перечислены библиотеки, которые реализуют инициализацию и завершение CRT.
Библиотека | Характеристики | Параметр | Директивы препроцессора |
---|---|---|---|
libcmt.lib | Статически связывает в коде запуск CRT машинного кода. | /MT | _MT |
libcmtd.lib | Статически связывает отладочную версию запуска CRT в машинном коде. Нераспространяемый компонент. | /MTd | _DEBUG , _MT |
msvcrt.lib | Статическая библиотека для запуска CRT в машинном коде для использования с DLL, UCRT и vcruntime. | /MD | _MT , _DLL |
msvcrtd.lib | Статическая библиотека для запуска отладочной версии CRT в машинном коде для использования с DLL, UCRT и vcruntime. Нераспространяемый компонент. | /MDd | _DEBUG , _MT , _DLL |
msvcmrt.lib | Статическая библиотека для запуска CRT в смешанном машинном и управляемом коде для использования с DLL, UCRT и vcruntime. | /clr | |
msvcmrtd.lib | Статическая библиотека для запуска отладочной версии CRT в смешанном машинном и управляемом коде для использования с DLL, UCRT и vcruntime. Нераспространяемый компонент. | /clr | |
msvcurt.lib | Нерекомендуемая статическая библиотека для CRT с полностью управляемым кодом. | /clr:pure | |
msvcurtd.lib | Нерекомендуемая статическая библиотека для отладочной версии CRT с полностью управляемым кодом. Нераспространяемый компонент. | /clr:pure |
Если вы свяжете программу из командной строки без параметра компилятора, указывающего библиотеку времени выполнения C, компоновщик будет использовать статически связанные библиотеки CRT: libcmt.lib , libvcruntime.lib и libucrt.lib .
Использование статически скомпонованных CRT означает, что все сведения о состоянии, сохраненные библиотекой времени выполнения C, будут локальны по отношению к этому экземпляру CRT. Например, если используется strtok при использовании статически связанной CRT, то расположение strtok средства синтаксического анализа не связано с strtok состоянием, используемым в коде в том же процессе (но в другой библиотеке DLL или exe), связанном с другим экземпляром статической библиотеки CRT. Напротив, динамически скомпонованная библиотека CRT позволяет использовать состояние всему коду в процессе, который динамически скомпонован с этой библиотекой CRT. Эта проблема не применяется, если используются новые более безопасные версии этих функций. Например, strtok_s Эта проблема не возникает.
Так как библиотека DLL, созданная путем связывания со статической библиотекой CRT, имеет собственное состояние CRT, не рекомендуется ссылаться статически на CRT в библиотеке DLL, если только эти последствия не были специально нужны и понятны. Например, при вызове _set_se_translator в исполняемом файле, который загружает БИБЛИОТЕКУ DLL, связанную со своей собственной статической библиотекой CRT, все исключения оборудования, создаваемые кодом в библиотеке DLL, не будут перехвачены преобразователем, но аппаратные исключения, создаваемые кодом в основном исполняемом файле, будут перехвачены.
Если вы используете /clr параметр компилятора, код будет связан со статической библиотекой msvcmrt. lib. Эта статическая библиотека предоставляет функцию прокси между управляемым кодом и неуправляемой средой CRT. Статически связанные CRT ( /MT или /MTd Параметры) нельзя использовать с /clr . Вместо этого используйте динамически связываемые библиотеки ( /MD или /MDd ). Полностью управляемые библиотеки CRT отмечены как нерекомендуемые для использования в Visual Studio 2015 и не поддерживаются в Visual Studio 2017.
Дополнительные сведения об использовании CRT с см /clr . в разделе смешанные (собственные и управляемые) сборки.
Чтобы создать отладочную версию приложения, _DEBUG необходимо определить флаг, и приложение должно быть связано с отладочной версией одной из этих библиотек. Дополнительные сведения об использовании отладочных версий файлов библиотек см. в разделе Методы отладки CRT.
Эта версия CRT не полностью соответствует стандарту C99. в версиях до Visual Studio 2019 версии 16,8 заголовок не поддерживается. Во всех версиях CX_LIMITED_RANGE FP_CONTRACT макросы и директивы pragma не поддерживаются. Некоторые элементы, такие как значения спецификаторов параметров в стандартных функциях ввода-вывода, по умолчанию используют интерпретации прежних версий. Можно использовать /Zc Параметры соответствия компилятора и указать параметры компоновщика для управления некоторыми аспектами соответствия библиотеки.
Файлы стандартной библиотеки C++ .lib
Стандартная библиотека C++ | Характеристики | Параметр | Директивы препроцессора |
---|---|---|---|
libcpmt.lib | Многопоточная, статическая компоновка. | /MT | _MT |
msvcprt.lib | Многопоточная, динамическая компоновка (импорт библиотеки для msvcp.dll ) | /MD | _MT , _DLL |
libcpmtd.lib | Многопоточная, статическая компоновка. | /MTd | _DEBUG , _MT |
msvcprtd.lib | Многопоточная, динамическая компоновка (импорт библиотеки для msvcpd.dll ) | /MDd | _DEBUG , _MT , _DLL |
При создании окончательной версии проекта одна из основных библиотек среды выполнения C ( libcmt.lib , msvcmrt.lib , msvcrt.lib ) по умолчанию связана в зависимости от выбранного параметра компилятора (многопоточная, DLL /clr ). Если включить в код один из файлов заголовков стандартной библиотеки c++ , стандартная библиотека c++ будет автоматически связываться с Visual C++ во время компиляции. Пример:
Для совместимости на уровне двоичного кода одна библиотека импорта может задавать несколько DLL-файлов. Обновления версий могут ввести библиотеки dot — отдельные DLL-файлы, которые вводят новые функции библиотеки. например, Visual Studio 2017 версии 15,6 появились msvcp140_1.dll для поддержки дополнительных функций стандартной библиотеки, не нарушая работу двоичного интерфейса приложения (ABI), поддерживаемого msvcp140.dll . msvcprt.lib библиотека импорта, входящая в набор инструментов для Visual Studio 2017 версии 15,6, поддерживает обе библиотеки dll, а для этой версии устанавливается обе библиотеки dll. После доставки библиотека dot имеет фиксированный ABI и никогда не будет зависеть от библиотеки dot более поздней версии.
Если приложение использует несколько версий CRT, с какими проблемами можно столкнуться?
С каждым исполняемым образом (EXE или DLL) может статически связываться собственная библиотека CRT. В образе может создаваться динамическая ссылка на CRT. Версия CRT статически включена или динамически загружается в зависимости от версии средств и библиотек, в которой она был создана. В рамках одного процесса может загружаться несколько образов EXE и DLL, каждый с собственной библиотекой CRT. Распределители, внутренние структуры макета и варианты организации хранилища для этих CRT могут быть разными. Это означает, что выделенная память, ресурсы CRT или классы, передаваемые через границу DLL, могут вызывать проблемы управления памятью, внутреннего статического использования или интерпретации макета. Например, если класс выделен в одной библиотеке DLL, но передан в другую и удален, какой используется метод освобождения CRT? Возникающие ошибки могут быть в диапазоне от несущественных до неустранимых. Поэтому настоятельно не рекомендуем передавать такие ресурсы напрямую.
Многих проблем можно избежать, воспользовавшись технологией двоичного интерфейса приложений (ABI). Она ориентирована на стабильность и поддержку версий. Разрабатывайте ваши интерфейсы экспорта DLL для передачи информации в виде значения или для работы в памяти, которая передается вызывающим объектом, а не в локально выделенной памяти, которая возвращается вызывающей стороне. Используйте методы маршалирования для копирования структурированных данных между исполняемыми образами. Инкапсулируйте ресурсы локально и допускайте действия только через дескрипторы или функции, которые вы предоставляете клиентам.
Кроме того, вы можете избежать некоторых из этих проблем, если для всех образов в процессе будет использоваться одна и та же версия динамически загружаемой библиотеки CRT. Чтобы убедиться, что все компоненты используют одну и ту же версию библиотеки CRT, создайте их с помощью /MD параметра и используйте тот же набор инструментов компилятора и параметров свойств.
Будьте внимательны, если программа передает определенные ресурсы CRT через границы DLL. Такие ресурсы, как дескрипторы файлов, языковые стандарты и переменные среды, могут вызывать проблемы даже при использовании той же версии CRT. Дополнительные сведения о связанных проблемах и способах их устранения см. в разделе Потенциальные ошибки при передаче объектов CRT через границы DLL.
Microsoft Visual C++: для чего нужен, где скачать и как установить
Microsoft Visual C++ Redistributable – это один из тех пакетов, без которых на вашем компьютере не запустится большинство игр. Он содержит библиотеки, которые позволяют запуститься программам, в разработке которых была использована среда Microsoft Visual C++, известная так же как MSVC. К таким приложениям относится большинство игр на Windows, потому наличие данного пакета необходимо.
Игры, как правило, загружают необходимые файлы по завершении установки, однако в работе пакета Microsoft Visual C++ могут случаться сбои, вызванные установкой пиратского ПО или активностью вредоносных программ. В таком случае необходимо скачать Microcoft Visual C++ Redistributable с официального сайта, следуя инструкциям из этой статьи.
Нужны ли старые версии Visual C++?
В интернете часто задают вопрос, нужны ли на компьютере все версии библиотек Microsoft Visual C++, или почему они не обновляются до последней, удаляя все предыдущие. Ответим, что удалять их не стоит, особенно если вы не хотите сталкиваться с проблемой невозможности запуска одной из ранее установленных игр после удаления старой версии Visual C++.
Если вы видите подобную картину в списке установленных программ, то лучшим решением будет просто пролистать этот список и не трогать его.
Не спешите удалять и 32-разрядные версии пакетов (с пометкой х86), даже если пользуетесь 64-разрядной Windows (x64). Их могут использовать установленные программы и игры!
Как скачать Microsoft Visual C++
Как и другие компоненты, разрабатываемые Microsoft, клиентскую часть продукта (то есть, Redistributable Package или Распространяемые пакеты), можно бесплатно скачать на официальном сайте. Использовать для их загрузки сторонние сайты не рекомендуется.
Чтобы установить Microsoft Visual C++ Redistributable Package, необходимо определиться с версией и скачать дистрибутивы. На данный момент самыми распространенными считаются версии 2010 и 2012 года, кроме того, для более новых приложений может потребоваться версия 2015. Поскольку эти библиотеки занимают не слишком много места, рекомендуется иметь Microsoft Visual C++ версий 2008, 2010, 2012, 2013 и 2015, независимо от того, установлены ли требующие их наличия программы.
Стоит учесть, что ранние версии Windows 7 и Windows XP не поддерживают Microsoft Visual C++ Redistributable 2012 и выше.
Файлы установки Microsoft Visual C++ для Windows вы можете скачать по следующим ссылкам:
- Microsoft Visual C++ 2008 х86 (для 32-разрядных систем)
- Microsoft Visual C++ 2010 х64 (для 64-разрядных систем )
- Microsoft Visual C++ 2010 х86 (для 32-разрядных систем )
- Microsoft Visual C++ 2012
- Microsoft Visual C++ 2013
- Microsoft Visual C++ 2015
Версия 2015 года еще не является окончательной, но уже используется для ряда новейших игр и программ.
Дистрибутивы, предназначенные для Windows x64, несовместимы с 32-разрядными системами.
Переустановка библиотек Visual C++
Если на компьютере установлены все необходимые пакеты, а игра все равно не запускается, необходимо:
Перезагрузка Windows необходима для корректной установки компонента.
В процессе отладки в Visual Studio окно Модули отображает список используемых приложением библиотек DLL и исполняемых файлов ( .exe), а также сведения о них.
Окно "Модули" недоступно при отладке SQL и скриптов.
Использование окна модулей
Чтобы открыть окно "Модули" во время отладки, выберите Отладка > Окна > Модули или нажмите клавиши CTRL+ALT+U.
По умолчанию модули в окне Модули упорядочены в порядке загрузки. Чтобы выполнить сортировку по любому столбцу окна, щелкните заголовок соответствующего столбца.
Загрузить символы
В столбце Состояние символов в окне Модули показано, для каких модулей загружены отладочные символы. Если здесь указано состояние Загрузка символов пропущена, Невозможно найти или открыть PDB-файл или Загрузка отключена параметром включения и исключения, вы можете загрузить символы вручную. Дополнительные сведения о загрузке и использовании символов см. в статье Указание файлов символов (.pdb) и исходных файлов.
Загрузка символов вручную
В окне Модули щелкните правой кнопкой модуль, для которого не загружены символы.
Выберите Сведения о загрузке символов, чтобы узнать, почему символы не были загружены.
Щелкните Загрузить символы, чтобы загрузить символы вручную.
Если символы не загружаются, выберите Параметры символов, чтобы открыть диалоговое окно Параметры и указать или изменить расположение для загрузки символов.
Вы можете скачать символы с общедоступных серверов символов Майкрософт или других аналогичных серверов, а также загрузить их из локальной папки на компьютере. Дополнительные сведения см. в разделе Настройка расположения файлов символов и поведения при загрузке.
Изменение параметров поведения при загрузке символов
В окне Модули щелкните правой кнопкой мыши любой модуль.
Выберите Параметры символов.
Выберите Загрузить все символы или выберите конкретные модули.
Изменение поведения загрузки символов для конкретного модуля
В окне Модули щелкните правой кнопкой мыши требуемый модуль.
В контекстном меню установите или снимите флажок Всегда загружать автоматически. Изменения вступят в силу при следующем сеансе отладки.
Использование скачанных библиотек с помощью vcpkg
Если вы хотите использовать скачанную библиотеку с помощью диспетчера пакетов vcpkg, то приведенные ниже инструкции можно пропустить. дополнительные сведения см. в разделе vcpkg. io.
Использование статических библиотек
Если проект статической библиотеки был создан в том же решении:
Если статическая библиотека не входит в состав решения:
- Щелкните правой кнопкой мыши узел проекта приложения в обозревателе решений и выберите Свойства.
- На странице свойств Каталоги VC++ добавьте в раздел Пути библиотек путь к каталогу, который содержит LIB-файл. Затем добавьте в раздел Включаемые каталоги путь к файлам заголовков библиотеки.
- На странице входное свойство компоновщика > добавьте имя файла lib в Дополнительные зависимости.
Библиотеки динамической компоновки
Если библиотека DLL была собрана в рамках того же решения, что и приложение, выполните те же действия, что и для статической библиотеки.
Если библиотека DLL не входит в состав решения приложения, вам потребуются DLL-файл, заголовки с прототипами для экспортируемых функций и классов, а также LIB-файл, содержащий необходимую для компоновки информацию.
- Скопируйте DLL-файл в папку выходных данных проекта или другую папку, которая задана в качестве стандартной для поиска библиотек DLL в Windows. Дополнительные сведения см. в статье Порядок поиска библиотек динамической компоновки.
- Выполните шаги с 1 по 3 для статических библиотек, чтобы задать пути к заголовкам и LIB-файлу.
COM-объекты
Свойства ссылки
Каждый тип ссылки имеет свойства. Свойства можно просмотреть, выбрав ссылку в обозревателе решений и нажав клавиши Alt + ВВОД. Также можно щелкнуть ссылку правой кнопкой мыши и выбрать пункт Свойства. Одни свойства доступны только для чтения, другие можно изменять. Тем не менее обычно эти свойства не требуется изменять вручную.
Свойства ссылки ActiveX
Свойства ссылки ActiveX доступны только для компонентов COM. Данные свойства отображаются только тогда, когда в панели Ссылки выбран компонент COM. Эти свойства нельзя изменить.
Управление полным путем
Отображает путь к каталогу элемента управления, на который указывает ссылка.
GUID элемента управления
Отображает GUID для элемента управления ActiveX.
Версия элемента управления
Отображает версию элемента управления ActiveX, на который указывает ссылка.
Имя библиотеки типов
Отображает имя библиотеки типов, на которую указывает ссылка.
Средство программы-оболочки
Отображает средство, которое используется для создания сборки взаимодействия из указанной библиотеки COM или элемента управления ActiveX.
Свойства ссылки на сборку (C++/CLI)
Относительный путь
Отображает относительный путь от каталога проекта к сборке, на которую указывает ссылка.
Свойства сборки
Следующие свойства доступны для различных типов ссылок. Они позволяют задавать способ построения со ссылками.
Копировать локальные
Указывает, следует ли автоматически копировать сборку, на которую указывает ссылка, в целевое расположение во время сборки.
Копировать локальные вспомогательные сборки (C++/CLI)
Указывает, следует ли автоматически копировать вспомогательные сборки ссылочной сборки в целевое расположение во время сборки. Используется, только если для параметра Копировать локальные задано значение true .
Выходные данные ссылочной сборки
Указывает, что эта сборка используется в процессе сборки. true означает, что эта сборка используется в командной строке компилятора во время выполнения сборки.
Свойства ссылок проектов на проекты
Следующие свойства определяют ссылку проекта на проект из проекта, выбранного в панели Ссылки, на другой проект в том же решении. Дополнительные сведения см. в статье Управление ссылками в проекте.
Компоновать зависимости библиотек
Если это свойство имеет значение True, система проектов установит в зависимом проекте связь с LIB-файлами, создаваемыми независимым проектом. Обычно устанавливается значение True.
Идентификатор проекта
Уникальный идентификатор независимого проекта. Значение свойства — это GUID внутренней системы, который невозможно изменить.
Использовать входные данные зависимостей библиотек
Если это свойство имеет значение False, система проектов не установит в зависимом проекте связь с OBJ-файлами для библиотеки, созданной независимым проектом. Таким образом, это значение отключает инкрементную компоновку. Обычно указывается значение False, так как при наличии множества независимых проектов сборка приложения может занять длительное время.
Имя сборки
Отображает имя сборки для сборки, на которую указывает ссылка.
Язык и региональные параметры
Отображает язык и региональные параметры выбранной ссылки.
Описание
Отображает описание выбранной ссылки.
Полный путь
Отображает путь к каталогу сборки, на которую указывает ссылка.
Удостоверение
Label
Отображает метку ссылки.
Name
Отображает имя ссылки.
Токен открытого ключа
Отображает токен открытого ключа для идентификации сборки, на которую указывает ссылка.
Строгое имя
true , если сборка, на которую указывает ссылка, имеет строгое имя. Сборка со строгим именем имеет уникальную версию.
Библиотека DLL (библиотека динамической компоновки) — это библиотека, содержащая код и данные, которые могут использоваться несколькими приложениями. Visual Studio можно использовать для создания, сборки, настройки и отладки библиотек DLL.
Создание библиотеки DLL
Создавать библиотеки DLL можно с помощью следующих шаблонов проектов Visual Studio.
Дополнительные сведения см. в разделе Методы отладки MFC.
Отладка библиотеки WCF аналогична отладке библиотеки классов. Дополнительные сведения см. в статье Элементы управления Windows Forms.
Обычно библиотека DLL вызывается из другого проекта. При отладке вызывающего проекта в зависимости от конфигурации библиотеки DLL можно выполнить шаг с заходом и отладить код библиотеки DLL.
Конфигурация отладки библиотеки DLL
При создании приложения на основе шаблона проекта Visual Studio Visual Studio автоматически создает требуемые параметры для конфигурации сборки отладки и выпуска. При необходимости эти параметры можно изменить. Дополнительные сведения см. в следующих статьях:
Установка DebuggableAttribute C++
Чтобы отладчик мог присоединиться к библиотеке DLL C++, код C++ должен добавлять DebuggableAttribute .
Установка DebuggableAttribute
В обозревателе решений выберите проект DLL C++ и щелкните значок Свойства либо щелкните проект правой кнопкой мыши и выберите пункт Свойства.
В области Свойства в разделе Компоновщик > Отладка выберите Да (/ASSEMBLYDEBUG) для свойства Отлаживаемая сборка.
Дополнительные сведения см. в статье /ASSEMBLYDEBUG.
Задание расположений файлов DLL C/C++
Для отладки внешней библиотеки DLL вызывающий проект должен находить библиотеку DLL, ее PDB-файл и любые другие файлы, необходимые библиотеке DLL. Вы можете создать пользовательскую задачу сборки, чтобы скопировать эти файлы в выходную папку \Debug, или скопировать файлы вручную.
Для проектов C/C++ можно задать расположения файлов заголовков и LIBD-файла на страницах свойств проекта, а не копировать их в выходную папку.
Задание расположений файла заголовка C/C и LIB-файла
В обозревателе решений выберите проект DLL C/C++ и щелкните значок Свойства либо щелкните проект правой кнопкой мыши и выберите пункт Свойства.
В верхней части области Свойства в разделе Конфигурация выберите Все конфигурации.
В разделе C/C++ > Общие > Дополнительные включаемые каталоги укажите папку с файлами заголовков.
В разделе Компоновщик > Общие > Дополнительные каталоги библиотек укажите папку с LIB-файлами.
В разделе Компоновщик > Ввод > Дополнительные зависимости укажите полный путь и имя файла для LIB-файлов.
Дополнительные сведения о параметрах проекта C++ см. в статье Справочник C++ по страницам свойств проекта Windows.
Сборка отладочной версии
Перед началом отладки обязательно создайте отладочную версию библиотеки DLL. Для отладки библиотеки DLL вызывающее приложение должно находить PDB-файл и любые другие файлы, необходимые библиотеке DLL.
Вы можете создать пользовательскую задачу сборки, чтобы скопировать эти файлы DLL в выходную папку \Debug, или скопировать файлы вручную.
Обязательно вызовите библиотеку DLL в правильном расположении. Это может показаться очевидным, но, если вызывающее приложение находит и загружает другую копию библиотеки DLL, отладчик никогда не достигнет заданных точек останова.
Отладка библиотека DLL
Библиотеку DLL нельзя запускать напрямую. Ее должно вызывать приложение, обычно это EXE-файл. Дополнительные сведения см. в статье Проекты Visual Studio — C++.
Чтобы отладить библиотеку DLL, можно начать отладку из вызывающего приложения или выполнить отладку из проекта DLL, указав вызывающее приложение. Можно также использовать окно "Интерпретация" отладчика для вычисления функций или методов DLL во время разработки без использования вызывающего приложения.
Дополнительные сведения см. в статье Первое знакомство с отладчиком.
Запуск отладки из вызывающего приложения
Вызывать библиотеку DLL могут следующие виды приложений.
- Приложение из проекта Visual Studio в том же или другом решении из библиотеки DLL.
- Существующее приложение, которое уже развернуто и работает на тестовом или рабочем компьютере.
- Программа расположена в Интернете и доступна по URL–адресу.
- Веб-приложение с веб-страницей, которая внедряет библиотеку DLL.
Выполнить отладку библиотеки DLL из вызывающего приложения можно следующими способами.
Откройте проект для вызывающего приложения и начните отладку, выбрав Отладка > Начать отладку или нажав клавишу F5.
Выполните присоединение к приложению, которое уже развернуто и работает на тестовом или рабочем компьютере. Используйте этот вариант для библиотек DLL на веб-сайтах или в веб-приложениях. Дополнительные сведения см. в разделе Практическое руководство. Присоединение к выполняемому процессу.
Перед запуском отладки этого вызывающего приложения нужно установить точку останова в DLL. См. статью Использование точек останова. При попадании в точку останова DLL можно пошагово проходить по коду, наблюдая действия в каждой строке. Дополнительные сведения см. в статье Навигация по коду с помощью отладчика.
Во время отладки в окне Модули можно проверить библиотеки DLL и EXE-файлы, загружаемые приложением. Чтобы открыть окно Модули, во время отладки выберите Отладка > Окна > Модули. Дополнительные сведения см. в разделе Практическое руководство. использовать окно модулей.
Использование окна "Интерпретация"
Окно Интерпретация можно использовать для вычисления функций или методов DLL во время разработки. Окно Интерпретация выполняет роль вызывающего приложения.
Окно Интерпретация можно использовать во время разработки с большинством типов проектов. Оно не поддерживается для SQL, веб-проектов или скриптов.
Например, чтобы протестировать метод с именем Test в классе Class1 , выполните следующие действия.
Откройте проект DLL, откройте окно Интерпретация, последовательно выбрав пункты Отладка > Окна > Интерпретация или нажав сочетание клавиш CTRL+ALT+I.
Предположим, что Test принимает один параметр int , вычислим Test с помощью окна Интерпретация :
Результат будет выведен в окне Интерпретация.
Можно продолжить отладку Test , установив в нем точку останова, а затем снова вычислив эту функцию.
Будет достигнута точка останова и можно будет пошагово пройти Test . После выполнения Test , отладчик вернется в режим разработки.
Отладка в смешанном режиме
Вы можете написать вызывающее приложение для библиотеки DLL в управляемом или машинном коде. Если собственное приложение вызывает управляемую библиотеку DLL и вы хотите выполнить отладку этих двух объектов, можно включить управляемые и машинные отладчики в свойствах проекта. Точный способ выполнения этой операции зависит от того, откуда будет начата отладка: из проекта DLL или из проекта вызывающего приложения. Дополнительные сведения см. в разделе Практическое руководство. Отладка в смешанном режиме.
Можно выполнить отладку собственной библиотеки DLL из управляемого вызывающего проекта. Дополнительные сведения см. в статье об отладке управляемого и машинного кода.
Использование скачанных библиотек с помощью vcpkg
Если вы хотите использовать скачанную библиотеку с помощью диспетчера пакетов vcpkg, то приведенные ниже инструкции можно пропустить. Дополнительные сведения см. на странице о vcpkg.
Использование статических библиотек
Если проект статической библиотеки был создан в том же решении:
Если статическая библиотека не входит в состав решения:
- Щелкните правой кнопкой мыши узел проекта приложения в обозревателе решений и выберите Свойства.
- На странице свойств Каталоги VC++ добавьте в раздел Пути библиотек путь к каталогу, который содержит LIB-файл. Затем добавьте в раздел Включаемые каталоги путь к файлам заголовков библиотеки.
- На странице свойств Компоновщик > Ввод добавьте имя LIB-файла в раздел Дополнительные зависимости.
Библиотеки динамической компоновки
Если библиотека DLL была собрана в рамках того же решения, что и приложение, выполните те же действия, что и для статической библиотеки.
Если библиотека DLL не входит в состав решения приложения, вам потребуются DLL-файл, заголовки с прототипами для экспортируемых функций и классов, а также LIB-файл, содержащий необходимую для компоновки информацию.
- Скопируйте DLL-файл в папку выходных данных проекта или другую папку, которая задана в качестве стандартной для поиска библиотек DLL в Windows. См. раздел Порядок поиска библиотеки динамической компоновки.
- Выполните шаги с 1 по 3 для статических библиотек, чтобы задать пути к заголовкам и LIB-файлу.
COM-объекты
Свойства ссылки
Каждый тип ссылки имеет свойства. Свойства можно просмотреть, выбрав ссылку в обозревателе решений и нажав клавиши Alt + ВВОД. Также можно щелкнуть ссылку правой кнопкой мыши и выбрать пункт Свойства. Одни свойства доступны только для чтения, другие можно изменять. Тем не менее обычно эти свойства не требуется изменять вручную.
Свойства ссылки ActiveX
Свойства ссылки ActiveX доступны только для компонентов COM. Данные свойства отображаются только тогда, когда в панели Ссылки выбран компонент COM. Эти свойства нельзя изменить.
Управление полным путем
Отображает путь к каталогу элемента управления, на который указывает ссылка.
GUID элемента управления
Отображает GUID для элемента управления ActiveX.
Версия элемента управления
Отображает версию элемента управления ActiveX, на который указывает ссылка.
Имя библиотеки типов
Отображает имя библиотеки типов, на которую указывает ссылка.
Средство программы-оболочки
Отображает средство, которое используется для создания сборки взаимодействия из указанной библиотеки COM или элемента управления ActiveX.
Свойства ссылки на сборку (C++/CLI)
Относительный путь
Отображает относительный путь от каталога проекта к сборке, на которую указывает ссылка.
Свойства сборки
Следующие свойства доступны для различных типов ссылок. Они позволяют задавать способ построения со ссылками.
Копировать локальные
Указывает, следует ли автоматически копировать сборку, на которую указывает ссылка, в целевое расположение во время сборки.
Копировать локальные вспомогательные сборки (C++/CLI)
Указывает, следует ли автоматически копировать вспомогательные сборки ссылочной сборки в целевое расположение во время сборки. Используется, только если для параметра Копировать локальные задано значение true .
Выходные данные ссылочной сборки
Указывает, что эта сборка используется в процессе сборки. true означает, что эта сборка используется в командной строке компилятора во время выполнения сборки.
Свойства ссылок проектов на проекты
Следующие свойства определяют ссылку проекта на проект из проекта, выбранного в панели Ссылки, на другой проект в том же решении. Дополнительные сведения см. в статье Управление ссылками в проекте.
Компоновать зависимости библиотек
Если это свойство имеет значение True, система проектов установит в зависимом проекте связь с LIB-файлами, создаваемыми независимым проектом. Обычно устанавливается значение True.
Идентификатор проекта
Уникальный идентификатор независимого проекта. Значение свойства — это GUID внутренней системы, который невозможно изменить.
Использовать входные данные зависимостей библиотек
Если это свойство имеет значение False, система проектов не установит в зависимом проекте связь с OBJ-файлами для библиотеки, созданной независимым проектом. Таким образом, это значение отключает инкрементную компоновку. Обычно указывается значение False, так как при наличии множества независимых проектов сборка приложения может занять длительное время.
Имя сборки
Отображает имя сборки для сборки, на которую указывает ссылка.
Язык и региональные параметры
Отображает язык и региональные параметры выбранной ссылки.
Описание
Отображает описание выбранной ссылки.
Полный путь
Отображает путь к каталогу сборки, на которую указывает ссылка.
Удостоверение
Label
Отображает метку ссылки.
Name
Отображает имя ссылки.
Токен открытого ключа
Отображает токен открытого ключа для идентификации сборки, на которую указывает ссылка.
Строгое имя
true , если сборка, на которую указывает ссылка, имеет строгое имя. Сборка со строгим именем имеет уникальную версию.
Где хранятся библиотеки visual studio
Репутация: нет
Всего: нет
Репутация: 10
Всего: 92
GreenByte
Зачем две темы создал?
Файл с расширением .h это не библиотека.
То, что его у тебя нет — нормально. Такого файла в стандартной поставке нет.
Если тебе нужны сокеты подключай WinSock2.h и библиотеку Ws2_32.lib.
Библиотека подключается через меню Project -> Settings. Там закладка Link и дописываешь в поле Object/Library modules
Репутация: нет
Всего: нет
где скачать winsock2.h и ws2_32.lib?
если не сложно, опишите пожалуйста процесс добавления библиотеки. =)
Репутация: нет
Всего: 1
Репутация: нет
Всего: нет
Репутация: 10
Всего: 92
Так а почему их у тебя нет?
Должны быть вместе с Visual Studuo.
(при условии, что студия установлена с кофигурацией по умолчанию)
Если же нет, то я понятия не имею где их можно скачать.
Репутация: нет
Всего: 2
- Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
- Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
- Прежде чем задать вопрос, прочтите это и/или это! хранится весь мировой запас ссылок на документы, связанные с C++ 🙂
- Не брезгуйте пользоваться тегами [code=cpp][/code].
- Пожалуйста, не просите написать за вас программы в этом разделе — для этого существует "Центр Помощи".
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn
[ Время генерации скрипта: 0.1051 ] [ Использовано запросов: 21 ] [ GZIP включён ]
Где найти библиотеки, подключаемые по умолчанию, в Visual Studio? (С++)
Насколько я понимаю, Visual Studio подключает некоторые библиотеки по умолчанию, даже если они не описаны в программе, и в другой среде программа может и не скомпилироваться. Где найти эти библиотеки, и как отключить их, чтобы быть уверенным, что программа запустится у другого человека?
Допустим, функция rand, вроде как, есть в библиотеках cstdlib и random, но её почему-то можно вызвать и без подключения этих библиотек.
Читайте также: