Настройка нового проекта
Прежде всего в среде разработки необходимо создать новый проект. Другой способ: можно использовать пример проекта AecSpaceOffsetStandardSample.
Прим.: Подключаемый модуль стандарта расчета площади реализован в виде библиотеки классов .NET, а не в виде приложения Windows.
- Откройте Microsoft Visual Studio 2005.
- Выберите в главном меню вкладку New (Создать).
- Выберите File (Файл) Project (Проект).
- В диалоговом окне «Новый проект» выберите шаблон библиотеки классов в одном из следующих местоположений:
- Visual Basic Windows
- Visual C# Windows
- Visual C++ CLR.
- Введите имя нового проекта. Рекомендуется использовать префикс AecAreaCalculationStandard, например, чтобы создать примерно такое имя AecAreaCalculationStandardMyOffsetRules. Такой способ именования соответствует именам подключаемых модулей, поставляемых с AutoCAD Architecture 2022 toolset (например, AecAreaCalculationStandardBasic, AecAreaCalculationStandardBOMA и т. д.). Программа распознает, что префикс описывает подключаемый модуль стандарта расчета площади и способна извлечь имя из сборки в целях диагностики. Перед обработкой убедитесь, что проект библиотеки классов .NET настроен и можно начинать редактирование исходного кода и файлов проекта.
- Для создания подключаемого модуля стандарта расчета площади библиотека классов .NET, созданная ранее, должна ссылаться на API-интерфейс .NET, входящий в состав AutoCAD Architecture 2022 toolset . Этот API реализован в сборке AecSpaceOffsetRuleManager.dll, на которую необходимо установить ссылку в новом проекте.
- Если имеется опыт работы с Microsoft Visual Studio, можно добавить ссылку на сборку в файл AecSpaceOffsetRuleManager.dll проекта библиотеки классов, нажав правой кнопкой мыши References (Ссылки) в Solution Explorer проекта и выбрав Add Reference (Добавить ссылку).
- Перейдите на страницу «Обзор» в таблице свойств и найдите сборку AecSpaceOffsetRuleManager.dll в папке C:\Program Files\ACA (или в папке, выбранной при установке).
- Добавьте ссылки в следующие сборки установки:
- acdbmgd.dll (AutoCAD .NET API)
- aecbasemgd.dll (базовые классы AutoCAD Architecture 2022 toolset )
- aecarchmgd.dll (объекты AutoCAD Architecture 2022 toolset )
Эти динамические библиотеки DLL находятся в той же папке, что и сборка AecSpaceOffsetRuleManager.dll.
@if exist $(TargetPath) @copy $(TargetPath) "C:\Program Files\AutoCAD Architecture \Space Calculation Standards\" @if exist $(TargetDir)$(TargetName).pdb @copy $(TargetDir)$(TargetName).pdb "C:\Program Files\AutoCAD Architecture \Space Calculation Standards\"
Понятия, связанные с данным
- Использование нового стандарта
- Внедрение подключаемого модуля пользовательского стандарта расчета площади
- Пространства
Добавление ссылок на управляемый проект Visual C++
В этой статье содержатся сведения о добавлении ссылок на управляемый проект Visual C++.
Исходная версия продукта: Visual C++
Исходный номер базы знаний: 310674
Аннотация
В этой статье описывается процесс добавления ссылки на другую сборку в проекте Visual C++. В других языках, таких как Visual C#, можно добавить ссылку с помощью диалогового окна Добавление ссылки . Это диалоговое окно недоступно для управляемых приложений C++. Существует несколько советов, которые упрощают использование ссылок в управляемом приложении C++.
Ссылки на Microsoft .NET
Ссылки на .NET указывают на общие сборки. Например, System.Windows.Forms.dll сборки является стандартной сборкой для доступа к классам Windows Forms. Чтобы использовать эту сборку в управляемом приложении C++, необходимо просто сослаться на нее #using с помощью директивы препроцессора, как показано ниже:
#using
Ссылки на COM
Использование com-объекта в управляемом приложении C++ предполагает принятие решения о проектировании. Один из вариантов — использовать неуправляемый COM-код внутри управляемого класса. Например, можно решить использовать традиционное #import решение. Это может быть хорошим вариантом для случаев, когда возникают проблемы с использованием COM-взаимодействия.
Второй вариант — использовать сборки взаимодействия, которые упаковывают com-объект. Это единственный метод, доступный для других языков, таких как C# и Visual Basic .NET. Чтобы создать сборку взаимодействия для com-объекта, используйте средство TLBIMP.exe. Например, выполните следующие действия, чтобы автоматизировать Internet Explorer из управляемого приложения:
- Откройте окно командной строки.
- Перейдите к системной папке Windows.
- Введите следующую команду:
tlbimp shdocvw.dll /out:Interop.shdocvw.dll
При этом создается сборка взаимодействия для ОБЪЕКТОВ COM в Shdocvw.dll. Результирующий файл ,Interop.shdocvw.dll, можно использовать с директивой #using . Затем его можно рассматривать как управляемый компонент. Инструкции по автоматическому копированию этой библиотеки динамической компоновки (DLL) в выходную папку см. в разделе Использование событий после сборки этой статьи.
Переменные среды для Visual C++ должны быть заданы для распознавания TLBIMP.exe. Если они не заданы, сначала необходимо запустить ./VC7/BIN/VCVARS32.bat в Visual Studio .NET или ./VC/BIN/VCVARS32.bat в Visual Studio и Visual C++ Express Edition.
Ссылки на проект
Ссылки на проекты — это ссылки на сборки, созданные другими проектами. Опять же, директива #using используется для ссылки на эти сборки. Тем не менее, так как эти сборки не являются общими, необходимо принять меры, чтобы компилятор смог их найти. Это можно сделать двумя способами:
- Скопируйте сборку в папку проекта.
- Измените параметры проекта, чтобы найти сборку:
Примечание. В Visual C++ разверните узел Свойства конфигурации, а затем разверните узел C/C++.
Использование событий после сборки
Частные сборки должны находиться в той же папке, что и исполняемый файл, в котором они используются. При добавлении ссылки в Visual C#, в Visual Basic .NET или Visual Basic она автоматически копируется в выходную папку. В управляемом приложении C++ этот шаг можно автоматизировать с помощью post-build событий. Например, рассмотрим сценарий, в котором у вас есть сборка с именемMYLIB.dll в папке проекта управляемого приложения C++ с именем TestApp. Следующие действия помогут настроить post-build событие, которое скопировать эту библиотеку DLL в выходную папку проекта TestApp .
- Откройте диалоговое окно Страницы свойств проекта Managed C++.
- Щелкните папку События сборки .
Примечание. В Visual C++ разверните узел Свойства конфигурации, а затем — События сборки.
copy $()mylib.dll $()
Использование Visual C++ .NET или Visual C++
С помощью Visual C++ .NET или Visual C++ можно добавить ссылку с помощью диалогового окна Добавление ссылки . Чтобы добавить ссылку на проект, выполните следующие действия.
- В Обозреватель решений выберите проект.
- В меню Проект щелкните Добавить ссылки.
Примечание. В Visual C++ выберите ссылки в меню Проект , а затем — Добавить новую ссылку.
Примечание. В Visual C++ откройте вкладку Обзор в диалоговом окне Добавление ссылок .
Примечание. В Visual C++ найдите нужный компонент на локальном диске.
Примечание. В Visual C++ нажмите кнопку ОК , чтобы закрыть диалоговое окно и добавить компонент в список Ссылки в диалоговом окне Страница свойств проекта.
Обратная связь
Были ли сведения на этой странице полезными?
Visual Studio — добавить ссылку на проект
В References появляется этот проект. Проект не билдится, т.к. IDE не видит DLL для используемого в коде класса (видимо так). Если сделать AddReference на DLL – всё ок, билдится. Что делаю не так? Нужно указать ссылку именно на проект, а не DLL.
Отслеживать
задан 20 июн 2018 в 14:46
293 4 4 серебряных знака 17 17 бронзовых знаков
возможно добавленный проект у вас не билдится, возможно у него есть свои зависимости, которые вы не добавили к вашему солюшену. После добавления проекта в солюшн, пробовали этот проект собрать отдельно от солюшена? (правый клик на проекте => Build)
20 июн 2018 в 22:02
да, проект сам билдится
Свойства проекта: разделы References и Resources в Visual Studio

Закладка References (только для языка Visual Basic)
Закладка References позволяет разработчику ссылаться на классы, принадлежащие к другим .NET-сборкам, проектам или библиотекам DLL. Как только проект или библиотека DLL добавлены в список ссылок, класс становится доступен либо по своему полному имени, включающему пространство имен, либо просто по имени, если пространство имен импортировано в исходный файл. На рисунке ниже показана закладка References для проекта, ссылающегося на множество сборок:

Одной из особенностей этой закладки, предназначенной для разработчиков программ на языке Visual Basic, является кнопка Unused References, позволяющая выполнять поиск ссылок, которые можно удалить. Кроме того, можно добавлять пути к ссылкам (reference path), что дает возможность включать все сборки, расположенные в данном месте.
Как только сборка добавлена в список ссылок, любой открытый класс, содержащийся в этой сборке, становится видимым в проекте. Если класс вложен в пространство имен (которое может быть вложенной иерархией), то для ссылки на класс необходимо указывать его полное имя. В языках Visual Basic и C# предусмотрен механизм импортирования пространств имен, чтобы на классы можно было ссылаться непосредственно. Раздел References позволяет осуществлять глобальный импорт пространств имен для классов, принадлежащих проекту, без явного импорта в файл класса.
Ссылки на внешние сборки могут быть ссылками на файл или проект. Ссылка на файл — это прямая ссылка на отдельную сборку. Такие ссылки создаются с помощью закладки Browse в диалоговом окне Add Reference. Ссылка на проект — это ссылка на отдельный проект в решении. Все сборки, создающиеся проектом, динамически добавляются как ссылки. Ссылки на проекты создаются с помощью закладки Project в диалоговом окне Add Reference.
Преимущество ссылки на проект заключается в том, что она создает зависимость между проектами в системе сборки. Зависимый проект может быть собран заново, если он был изменен с момента последней сборки проекта, который на него ссылается. Ссылка на файл не создает зависимости между сборками, поэтому возможна ситуация, когда проект, ссылающийся на файл, будет собран, а зависимый проект — нет. Однако это может создать проблемы в ссылающемся проекте, который ожидает другую версию зависимого проекта.
Закладка Resources
Ресурсы проекта можно добавлять и удалять с помощью закладки Resources, показанной на рисунке ниже. В приведенном примере в приложение были добавлены две пиктограммы. Ресурсами могут быть изображения, текст, файлы и другие сериализуемые классы.

Этот интерфейс существенно облегчает работу с файлами ресурсов во время проектирования.