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

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

-

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

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

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

Вот Еще темка для развития и начало изучения.



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

В этом пошаговом руководстве рассматриваются следующие действия:

создание проекта библиотеки динамической компоновки (DLL);

добавление класса в библиотеку динамической компоновки;

создание приложения, ссылающегося на библиотеку динамической компоновки;

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

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



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

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

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

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

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

На странице Параметры приложения диалогового окна Мастер приложений Win32, в поле Тип приложения, выберите пункт DLL, если он доступен, либо пункт Консольное приложение, если пункт DLL не доступен. В некоторых версиях Visual Studio создание проектов DLL с помощью мастеров не поддерживается. Необходимые изменения можно внести позднее для компиляции проекта в библиотеку DLL.

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

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

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


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

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

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

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

        // Returns a / b
        // Throws DivideByZeroException if b is 0
        static __declspec(dllexport) double Divide(double a, double b);
    };
}
Обратите внимание на модификатор __declspec(dllexport) в объявлениях методов в этом коде. Этот модификатор разрешает экспорт метода библиотекой DLL для использования его другими приложениями.



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

Реализуйте функциональность класса MyMathFuncs в исходном файле. Код должен выглядеть примерно следующим образом:


Копировать
Код:
// MathFuncsDll.cpp // compile with: /EHsc /LD #include "MathFuncsDll.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; } }
Чтобы построить библиотеку DLL проекта, в меню Проект выберите Свойства MathFuncsDll. В левой области в поле Свойства конфигурации выберите Общие. В правой области в поле Тип конфигурации выберите Динамическая библиотека (.dll). Нажмите кнопку ОК для сохранения изменений.

Примечание
При построении проекта из командной строки используйте параметр компилятора /LD, указывающий на то, что выходной файл должен являться DLL-файлом.


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



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

Чтобы создать приложение, которое будет ссылаться и использовать созданную ранее библиотеку динамической компоновки, в меню Файл выберите пункт Создать и затем пункт Проект....
В узле Visual C++ области Типы проектов выберите Win32.

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

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

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

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

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

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

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

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

Для использования математических процедур из библиотеки динамической компоновки необходимо сослаться на эту библиотеку. Для этого в обозревателе решений выберите проект MyExecRefsDll и затем выберите [COLOR="sienna"]Ссылки…[/COLOR] в меню Проект. В диалоговом окне Страницы свойств разверните узел Общие свойства, выберите пункт .NET Framework и ссылки и затем нажмите кнопку Добавить новую ссылку….

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

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

Исполняемый файл не загружает библиотеки динамической компоновки во время выполнения. Необходимо указать системе место для поиска библиотеки MathFuncsDll.dll. Это можно сделать с помощью переменной среды PATH. Для этого в диалоговом окне Окна свойств разверните узел Свойства конфигурации, а затем выберите Отладка. В поле Среда введите следующую строку: PATH=<путь_к_файлу_MathFuncsDll.dll>, где вместо <путь_к_файлу_MathFuncsDll.dll> необходимо подставить фактическое расположение библиотеки MathFuncsDll.dll. Нажмите кнопку ОК для сохранения всех изменений.

Примечание
При использовании для запуска исполняемого файла командной строки вместо Visual Studio необходимо вручную обновить переменную среды PATH из командной строки следующим образом: set PATH=%PATH%;<путь_к_файлу_MathFuncsDll.dll>, где вместо <путь_к_файлу_MathFuncsDll.dll> необходимо подставить фактическое расположение библиотеки MathFuncsDll.dll.


Теперь класс MyMathFuncs можно использовать в приложении. Замените код в файле MyExecRefsDll.cpp следующим кодом:


Копировать
Код:
// MyExecRefsDll.cpp
// compile with: /EHsc /link MathFuncsDll.lib

#include <iostream>

#include "MathFuncsDll.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;
}

Постройте исполняемый файл, выбрав команду Построить решение в меню Построение.

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

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



a + b = 106.4
a - b = -91.6
a * b = 732.6
a / b = 0.0747475

//over: Первоисточник [Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось Skilful; 08.03.2012 в 23:27.
  Ответить с цитированием
Старый 19.02.2012, 15:49   #2
 Фельдмаршал
Аватар для Dimedrol1536
 
Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
Отправить сообщение для Dimedrol1536 с помощью ICQ Отправить сообщение для Dimedrol1536 с помощью Skype™
 
По умолчанию Re: Создание и использование библиотеки DLL

Откуда скопипастил?
  Ответить с цитированием
Старый 19.02.2012, 16:00   #3
 Сержант
Аватар для Meteor2142
 
Meteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нацииMeteor2142 гордость нации
Регистрация: 12.04.2011
Сообщений: 142
Популярность: 3904
Сказал(а) спасибо: 279
Поблагодарили 361 раз(а) в 174 сообщениях
Отправить сообщение для Meteor2142 с помощью Skype™
 
По умолчанию Re: Создание и использование библиотеки DLL

Dimedrol1536(2),
Сайт Майкрософта!
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 08.03.2012, 23:33   #4
,,,,
 Командор
Аватар для Skilful
 
Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(
Регистрация: 08.05.2011
Сообщений: 752
Популярность: 18860
Золото Zhyk.Ru: 8
Сказал(а) спасибо: 383
Поблагодарили 1,069 раз(а) в 448 сообщениях
Отправить сообщение для Skilful с помощью ICQ Отправить сообщение для Skilful с помощью Skype™
 
По умолчанию Re: Создание и использование библиотеки DLL

daff26, Нужно указывать Первоисточники, в следующий раз тема будет удалена по п.19
Так же советую изменить оформление темы, читаемость плохая.
________________

  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] Создание и использование статической библиотеки daff26 Разработка ПО для Point Blank 1 19.02.2012 15:37
Создание и использование DLL (Microsoft Visual C++) -=Angel=- С/С++ 0 28.04.2010 23:54

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

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

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