Стоит Windows 8 Pro, Visual Studio 2010 Express Edition . |
Упаковка кода в статическую библиотеку Win32Lib
Создание тестового приложения
Для проверки рассматриваемой технологии создадим простое тестовое приложение, которое по нажатию кнопок будет вычислять и выдавать информацию о площади круга по введенному радиусу. При этом программная поддержка модели круга будет находиться в созданной нами библиотеки Circle.lib.
- Закройте проект создания библиотеки и, оставаясь в том же каталоге выполнения лабораторной работы, создайте новый проект с именем TestLib
Создание заготовки тестового приложения
- Выполните команду меню оболочки File/New/Project и заполните окно New Project так
- Заполните вкладки мастера создания проекта так
- После нажатия на кнопке Finish войдите в панель Resource View и русифицируйте ресурсы узлов Dialog и String Table через панель Properties (для одновременного выделения группы ресурсов используйте клавишу Ctrl )
- Установите режим построения тестового приложения в Release
-
Откройте в режиме дизайна (визуального проектирования) ресурс IDD_TESTLIB_DIALOG и заполните его элементами управления (компонентами) в соответствии с таблицей
Таблица свойств диалоговой панели Элемент Свойство Значение Диалоговая панель ID IDD_TESTLIB_DIALOG Caption Тест для Lib Button ID IDC_BUTTON_EXIT Caption Выход Group Box Caption Параметры круга Static Text ID IDC_STATIC Caption Радиус: Align Text Right Static Text ID IDC_STATIC Caption Площадь: Align Text Right Button ID IDC_BUTTON_EXECUTE Caption Решить Button ID IDC_BUTTON_DISPLAY Caption Показать Edit Control ID IDC_EDIT_RADIUS Width 50 Edit Control ID IDC_EDIT_AREA Width 50 - Оформите интерфейс пользователя так, как показано на рисунке
Подключение библиотеки к проекту
В тестовом приложении мы будем использовать класс CCircle и его реализацию. Описание класса хранится в файле Circle.h, а объектный код функций-членов хранится в библиотеке Circle.lib. На этапе компиляции тестового приложения компилятору достаточно информации об описании класса CCircle, поэтому требуется только поместить вначале файла TestLibDlg.cpp директиву #include "path\\Circle.h".
Здесь path указывает место размещения файла Circle.h в дереве каталогов. Двойной обратный слеш ставится потому, что одинарный слэш в C++ по умолчанию считается экраном и чтобы компилятор правильно его принял, его нужно заэкранировать (экран экранирует экран - мама мыла раму).
Чтобы не связываться с путем, лучше скопировать файл Circle.h в каталог проекта тестового приложения.
Компоновщику тестового приложения нужен объектный код реализации класса CCircle, который содержится в файле Circle.lib. Этот файл тоже необходимо включить в тестовое приложение.
- Скопируйте из предыдущего проекта два файла: Circle.h и из каталога Release - файл Circle.lib
-
Откройте файл TestLibDlg.h и добавьте в начало код
Подключение описания класса CCircle в тестовое приложение // TestLibDlg.h : header file // #pragma once #include "Circle.h" // CTestLibDlg dialog class CTestLibDlg : public CDialog { ............................................... };
Теперь описание класса CCircle будет доступно компилятору при построении проекта.
- Через меню Project или через контекстное меню корневого узла дерева файлов проекта выполните команду Add Existing Item (Добавить существующий), чтобы вызвать окно мастера добавления в проект
- В открывшемся окне установите фильтр файлов на All Files (*.*) и выберите файл Circle.lib
Теперь объектный код библиотеки стал частью проекта и будет доступен компоновщику при построении проекта, в чем можно убедиться, открыв дерево файлов проекта