Опубликован: 17.08.2010 | Доступ: свободный | Студентов: 1000 / 59 | Оценка: 4.11 / 3.89 | Длительность: 29:38:00
Самостоятельная работа 20:

Упаковка кода в статическую библиотеку 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

Теперь объектный код библиотеки стал частью проекта и будет доступен компоновщику при построении проекта, в чем можно убедиться, открыв дерево файлов проекта


Александр Даниленко
Александр Даниленко
Стоит Windows 8 Pro, Visual Studio 2010 Express Edition .