Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Создание и использование статической библиотеки

-

Разработка ПО для Point Blank

- Бюро разработчиков Zhyk.Ru: создание чит-программ и прочего ПО для Point Blank

Ответ
 
Опции темы
Старый 19.02.2012, 15:08   #1
 Пехотинец
Аватар для daff26
 
daff26 на правильном пути
Регистрация: 06.02.2011
Сообщений: 69
Популярность: 49
Сказал(а) спасибо: 102
Поблагодарили 54 раз(а) в 31 сообщениях
 
По умолчанию Создание и использование статической библиотеки

Хочу предложить вам немного теории, вот вам Уважаемые Жуковцы
Тема для размышления, и информация для начинающих и не только...
Я надеюсь эта тема будет полезной.


Пошаговое руководство. Создание и использование статической библиотеки (C++)




Следующим типом библиотеки, которую мы создадим, является статическая библиотека (LIB). Статические библиотеки являются хорошим способом повторного использования кода. Вместо того чтобы каждый раз реализовывать одни и те же подпрограммы в каждом создаваемом приложении, их можно создать единожды и затем вызывать из приложений для обеспечения соответствующей функциональности.

В пошаговом руководстве показано, как выполнять следующие задачи:

Создание проекта статической библиотеки.
Добавление класса в статическую библиотеку.

Создание консольного приложения, ссылающегося на статическую библиотеку.

Использование функциональных возможностей статической библиотеки в приложении.

Запустите приложение.

Обязательные компоненты
--------------------------------------------------------------------------------

Создание проекта статической библиотеки

В меню Файл выберите пункт Создать, а затем пункт Проект.

В узле Visual C++ области Типы проектов выберите Win32.

В области Шаблоны выберите Консольное приложение Win32.

Выберите имя для проекта, например MathFuncsLib, и введите его в поле Имя. Выберите имя для решения, например StaticLibrary, и введите его в поле Имя решения.

Для запуска мастера приложений Win32 нажмите кнопку ОК. На странице Общие сведения диалогового окна Мастер приложений Win32 нажмите кнопку Далее.

На странице Параметры приложения диалогового окна Мастер приложений Win32 в поле Тип приложения выберите пункт Статическая библиотека.

На странице Параметры приложения диалогового окна Мастер приложений Win32 в поле Дополнительные параметры снимите флажок Предкомпилированный заголовок.

Чтобы создать проект, нажмите кнопку Готово.

Добавление класса в статическую библиотеку

Чтобы создать файл заголовка для нового класса, в меню Проект выберите команду Добавить новый элемент. Откроется диалоговое окно Добавление нового элемента. В узле Visual C++ области Категории выберите пункт Код. В области Шаблоны выберите пункт Заголовочный файл (.h). Выберите имя для файла заголовка, например MathFuncsLib.h, и нажмите кнопку Добавить. Отобразится пустой файл.

Добавьте класс с именем MyMathFuncs, осуществляющий обычные арифметические операции, такие как сложение, вычитание, умножение и деление. Для этого замените содержимое файла MathFuncsLib.h следующим кодом.



Копировать
Код:
// MathFuncsLib.h

namespace MathFuncs
{
    class MyMathFuncs
    {
    public:
        // Returns a + b
        static double Add(double a, double b);

        // Returns a - b
        static double Subtract(double a, double b);

        // Returns a * b
        static double Multiply(double a, double b);

        // Returns a / b
        // Throws DivideByZeroException if b is 0
        static double Divide(double a, double b);
    };
}

Чтобы создать исходный файл для нового класса, в меню Проект выберите команду Добавить новый элемент. Откроется диалоговое окно Добавление нового элемента. В узле Visual C++ области Категории выберите пункт Код. В области Шаблоны выберите пункт Файл C++ (.cpp). Выберите имя для исходного файла, например MathFuncsLib.cpp, и нажмите кнопку Добавить. Отобразится пустой файл.

Реализуйте функциональность класса MyMathFuncs в исходном файле. Для этого замените содержимое файла MathFuncsLib.cpp следующим кодом.


Копировать
Код:
 // MathFuncsLib.cpp
// compile with: /c /EHsc
// post-build command: lib MathFuncsLib.obj

#include "MathFuncsLib.h"

#include <stdexcept>

using namespace std;

namespace MathFuncs
{
    double MyMathFuncs::Add(double a, double b)
    {
        return a + b;
    }

    double MyMathFuncs::Subtract(double a, double b)
    {
        return a - b;
    }

    double MyMathFuncs::Multiply(double a, double b)
    {
        return a * b;
    }

    double MyMathFuncs::Divide(double a, double b)
    {
        if (b == 0)
        {
            throw new invalid_argument("b cannot be zero!");
        }

        return a / b;
    }
}

Чтобы встроить проект в статистическую библиотеку, выберите в меню Проект пункт Свойства. В левой области в поле Свойства конфигурации выберите Общие. В правой области в поле Тип конфигурации выберите Статическая библиотека (.lib). Нажмите кнопку ОК для сохранения изменений.

Примечание
При выполнении построения из командной строки оно производится в два этапа. Сперва необходимо скомпилировать код путем вызова Cl.exe с параметром компилятора /c (cl /c /EHsc MathFuncsLib.cpp). При этом будет создан объектный файл с именем MathFuncsLib.obj. Далее необходимо связать код с помощью диспетчера библиотек Lib.exe (lib MathFuncsLib.obj). При этом будет создана статическая библиотека MathFuncsLib.lib.


Скомпилируйте статическую библиотеку, выбрав команду Построить решение в меню Построение. В результате будет создана статическая библиотека, которая может использоваться другими программами.

Создание консольного приложения, ссылающегося на статическую библиотеку
Чтобы создать приложение, которое будет использовать созданную ранее статическую библиотеку и ссылаться на нее, в меню Файл выберите пункт Создать, а затем пункт Проект.

В узле Visual C++ области Типы проектов выберите Win32.

В области Шаблоны выберите Консольное приложение Win32.

Выберите имя для проекта, например MyExecRefsLib, и введите его в поле Имя. В раскрывающемся списке рядом с полем Решение выберите пункт Добавить в решение. После этого новый проект будет добавлен в то же решение, что и статическая библиотека.

Для запуска мастера приложений Win32 нажмите кнопку ОК. На странице Общие сведения диалогового окна Мастер приложений Win32 нажмите кнопку Далее.

На странице Параметры приложения диалогового окна Мастер приложений Win32 в поле Тип приложения выберите пункт Консольное приложение.

На странице Параметры приложения диалогового окна Мастер приложений Win32 в поле Дополнительные параметры снимите флажок Предкомпилированный заголовок.

Чтобы создать проект, нажмите кнопку Готово.

Использование функциональных возможностей статической библиотеки в приложении
После создания консольного приложения мастер создаст пустую программу. Имя исходного файла будет совпадать с именем, выбранным ранее для проекта. В этом примере он имеет имя MyExecRefsLib.cpp.

Для использования математических процедур из статической библиотеки необходимо сослаться на эту библиотеку. Для этого в меню Проект выберите пункт Ссылки. В диалоговом окне Страницы свойств библиотеки MyExecRefsLib разверните узел Общие свойства и выберите команду Добавить новую ссылку.

Появится диалоговое окно Добавление ссылки. На вкладке Проекты перечисляются все проекты текущего решения и библиотеки, на которые можно создать ссылки. На вкладке Проекты выберите проект MathFuncsLib. Нажмите кнопку ОК.

Для создания ссылки на файл заголовка MathFuncsLib.h необходимо изменить путь к каталогам включения. Для этого в диалоговом окне Окна свойств библиотеки MyExecRefsLib последовательно разверните узлы Свойства конфигурации, C/C++, а затем выберите Общие. В поле значения свойства Дополнительные каталоги включения введите путь к каталогу MathFuncsLib или найдите этот каталог.

Чтобы найти путь к каталогу, в раскрывающемся списке значений свойств щелкните Изменить. В текстовом поле диалогового окна Дополнительные каталоги включаемых файлов выберите пустую строку и нажмите кнопку с многоточием (…) в конце строки. В диалоговом окне Выбор каталога выберите каталог MathFuncsLib и нажмите кнопку Выбор папки, чтобы сохранить выбранные значения и закрыть диалоговое окно. В диалоговом окне Дополнительные каталоги включаемых файлов нажмите кнопку ОК.

Теперь класс MyMathFuncs можно использовать в приложении. Для этого замените содержимое файла MyExecRefsLib.cpp следующим кодом.



Копировать
Код:
// MyExecRefsLib.cpp // compile with: /EHsc /link MathFuncsLib.lib #include <iostream> #include "MathFuncsLib.h" using namespace std; int main() { double a = 7.4; int b = 99; cout << "a + b = " << MathFuncs::MyMathFuncs::Add(a, b) << endl; cout << "a - b = " << MathFuncs::MyMathFuncs::Subtract(a, b) << endl; cout << "a * b = " << MathFuncs::MyMathFuncs::Multiply(a, b) << endl; cout << "a / b = " << MathFuncs::MyMathFuncs::Divide(a, b) << endl; return 0; }
Постройте исполняемый файл, выбрав команду Построить решение в меню Построение.

Запуск приложения

Убедитесь, что проект MyExecRefsLib выбран в качестве проекта по умолчанию. В окне Обозреватель решений выберите проект MyExecRefsLib, а затем в меню Проект выберите команду Назначить запускаемым проектом.

Чтобы запустить проект, в меню Отладка выберите команду Запуск без отладки. Результат выполнения должен выглядеть примерно следующим образом:



Копировать
a + b = 106.4
a - b = -91.6
a * b = 732.6
a / b = 0.0747475



Последний раз редактировалось daff26; 19.02.2012 в 16:31. Причина: Источник темы вот http://msdn.microsoft.com/ru-ru/library/ms235636.aspx
  Ответить с цитированием
Старый 19.02.2012, 15:37   #2
 Сержант
Аватар для Meteor2142
 
Meteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нации
Регистрация: 12.04.2011
Сообщений: 142
Популярность: 3904
Сказал(а) спасибо: 279
Поблагодарили 361 раз(а) в 174 сообщениях
Отправить сообщение для Meteor2142 с помощью Skype™
 
По умолчанию Re: Создание и использование статической библиотеки

1)Обясни для чего это!
2)Укажи [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание и использование DLL (Microsoft Visual C++) -=Angel=- С/С++ 0 28.04.2010 23:54

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 02:47.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net