'

Расширение MS Visual Studio 2005 с использованием Intel® C++ IDE Automation

Понравилась презентация – покажи это...





Слайд 0

Расширение MS Visual Studio 2005 с использованием Intel® C++ IDE Automation Юрий Пляхин Software Engineer SSG Intel®


Слайд 1

План занятия Необходимый инструментарий Необходимые знания Возможности расширения MS Visual Studio (MS VS) Создание и инсталляция Add-in’ов Использование Intel® C++ IDE Automation для автоматизации задач Создание Add-in’а с использованием Automation 1/1/2016 2 Юрий Пляхин


Слайд 2

Необходимый инструментарий MS Windows 2000 SP4 и выше MS VS 2005 Standard Edition или выше 1/1/2016 3 Юрий Пляхин


Слайд 3

Необходимые знания Структура и использование MS VS ООП Понимание XML C# или VB и С++ 1/1/2016 4 Юрий Пляхин


Слайд 4

Возможности расширения MS VS Macros - Demo Add-ins – позже ;-) VSPackages (необходим VS SDK) - Demo Project Templates - Demo 1/1/2016 5 Юрий Пляхин


Слайд 5

Задание 1 - Создание Add-in’а Запускаем Visual Studio Новый проект: Other Project Types, Extensibility, Visual Studio Add-in Create Add-in using Visual C# Microsoft Visual Studio 2005 Name, Description Yes, create a ‘Tools’ menu item Yes, I would like my Add-in to offer ‘About’ box information 1/1/2016 6 Юрий Пляхин


Слайд 6

Структура Add-in’a References AssemblyInfo.cs CommandBar.resx Connect.cs Файлы .AddIn 1/1/2016 7 Юрий Пляхин


Слайд 7

Класс Connect Поля _applicationObject _addInInstance Методы Connect() – Конструктор. Инициализация. OnConnection() – Уведомление о загрузке OnDisconnection() – Уведомление о выгрузке OnStartupComplete() – Уведомление о завершении загрузки VS OnBeginShutdown() – Уведомление о начале выгрузки VS QueryStatus() – Обновление информации о видимости комманд Exec() – Обработка вызова команды 1/1/2016 8 Юрий Пляхин


Слайд 8

Задание 2 - Запуск Add-in’a Постройте проект Запустите VS 1/1/2016 9 Юрий Пляхин


Слайд 9

Задание 3 - Порядок вызова методов Добавьте MessageBox.Show(“some text”) в каждый метод Запустите и посмотрите порядок вызова методов 1/1/2016 10 Юрий Пляхин


Слайд 10

Задания 4, 5 - Menu Items Добавление OnConnection Исполнение Exec 1/1/2016 11 Юрий Пляхин


Слайд 11

MS VS Automation 1/1/2016 12 Юрий Пляхин DTE Solution Projects Project (Solution Folder) ProjectItems ProjectItem Development Tools Environment


Слайд 12

MS VS Automation DTE2.Solution Solution.Projects Project.ProjectItems ProjectItem.SubProject 1/1/2016 13 Юрий Пляхин


Слайд 13

Разбор функции – получение всех сpp проектов Project Kind FullName Kind: IC++ Project: EAF909A5-FA59-4C3D-9431-0FCC20D5BCF9 VC++ Project: 8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942 1/1/2016 Юрий Пляхин 14


Слайд 14

Задание 6 –управление видимостью Видимость QueryStatus vsCommandStatus.vsCommandStatusSupported vsCommandStatus.vsCommandStatusEnabled vsCommandStatus.vsCommandStatusInvisible DTE2.ActiveSolutionProjects Получение массива выбранных проектов (Project) 1/1/2016 Юрий Пляхин 15


Слайд 15

Задание 7 – Автоматизация построения Solution.SolutionBuild SolutionBuild Clean(WaitForCleanToFinish) Build(WaitForBuildToFinish) 1/1/2016 Юрий Пляхин 16


Слайд 16

Задание 8 – Мэнеджер конфигураций Project.ConfigurationManager ConfigurationManager.ActiveConfiguration ConfigurationName PlatformName 1/1/2016 Юрий Пляхин 17


Слайд 17

Задание 9 – управление видимостью (Intel® C++ IDE Automation - ICProjectEngine) VCProject, ICProject Преобразование между объектными моделями Поучить объект: Project.Object Преобразовать к требуемому типу (ICProject, VCProject) Обработка InvalidCastException 1/1/2016 Юрий Пляхин 18


Слайд 18

Некоторые опции компилятора, выставляемые из VS 1/1/2016 Юрий Пляхин 19 Кто самый внимательный ?


Слайд 19

Некоторые опции компилятора, выставляемые из VS 1/1/2016 Юрий Пляхин 20 Кто самый внимательный ?


Слайд 20

Некоторые опции компилятора, выставляемые из VS (прод) 1/1/2016 Юрий Пляхин 21 Кто самый внимательный ?


Слайд 21

Intel® C++ IDE Automation - ICProjectEngine ICCollection <= ICProject.Configurations ICConfiguration <= ICCollection.Item(cfg) ICCollection <= ICConfiguration.Tools CppCompilerTool ICLinkerTool ICPostBuildEventTool CppCompilerTool tool = (CppCompilerTool)tools.Item("CppCmplrTool"); 1/1/2016 22 Юрий Пляхин


Слайд 22

Задание 10 – Автоматизация настройки проекта tool.property = type.value; Property: Optimization_2 Value type: optimizationOption Property: interproceduralOptimization Value type: interproceduralOptimization Property: useProcessorExtensions Value type: useProcessorExtensions ICProject.Save(); 1/1/2016 Юрий Пляхин 23


Слайд 23

Intel® C++ IDE Automation - ICOptPkg DTE2.GetObject(“Name”) Type: ProjectConversions Name: PrjConvert EnableUsingIntelCppCompiler(prjFullName, true) DisableUsingIntelCppCompiler(prjFullName, true) IsConvertorReady(out bConverterIsReady) 1/1/2016 24 Юрий Пляхин


Слайд 24

Задание 11 – Автоматизация конвертации проекта Действие по кнопке: Сконвертировать в Интел проект Установить свойства Очистить Построить 1/1/2016 Юрий Пляхин 25


Слайд 25

Intel® C++ IDE Automation - ICOptPkg Type: IntelSettings Name: IntelOptions PlatformsCount [0..n-1] CompilersCount [1..n] CurrentPlatformIndex CurrentCompilerIndex Compiler(index) Type: IntelCompiler Name, TargetPlatform, ExecutablePath, IncludePath, LibraryPath, DefaultOptions 1/1/2016 Юрий Пляхин 26


Слайд 26

Инсталляция Add-in’а Поместить .dll и .AddIn файлы в определенное место Подправить AddIn файл, если необходимо 1/1/2016 27 Юрий Пляхин


Слайд 27

Самостоятельный проект Модифицировать Add-in: Сменить местоположение и название кнопки Добавить изменение свойств проекта для улучшения производительности приложения Выдать окно с информацией обо всех интегрированных в VS компиляторах Intel C++ Добавить конвертацию в обратную сторону Обработка нескольких проектов одновременно Ваши идеи Написать свой Add-in, реализовав какую-либо идею 1/1/2016 28 Юрий Пляхин


×

HTML:





Ссылка: