Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 28 января!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Visual C++.NET
Урок 15. Создание и использование dll

На этом занятии мы с вами посмотрим, как можно создавать и использовать собственную dll. Для начала напомним, что dll - это библиотечный файл, который может содержать как некоторые классы, так и отдельные функции. Сам по себе такой файл запускать нельзя - он используется только другими программами. При использовании dll-файла имеется один существенный плюс - этот файл может использоваться сразу в нескольких программах. Так что если у вас есть некоторые общие функции, которые вы предполагаете использовать в разных ваших программах, то создавайте для этих функций отдельную dll.

План наших действий будет такой - сначала мы содадим dll-файл и внесем в него один класс с некоторым методом и одну функцию. Потом мы создадим тестовую программу, в которой мы и будем вызывать метод класса и функцию из нашего dll-файла.

Начинаем создавать dll-файл. Для этого запускаем Visual Studio и создаем новый тип проекта C++ типа Win32 Project:

Выбор типа проекта

В качестве имени проекта для определености задайте firstdll и нажмите на OK.

В появившемся окне Win32 Application Wizard перейдите слева на вкладку Application Settings и отметьте там радиокнопку dll:

Окно Win32 Application Wizard

Нажмите на кнопку Finish.

Мастер нам сделал заготовку для нашей dll. Будем развивать ее. Для этого добавим 1 функцию и один класс с методом. Вот код:

#include "stdafx.h"
 
 BOOL APIENTRY DllMain( HANDLE hModule,
 
                        DWORD  ul_reason_for_call,
 
                        LPVOID lpReserved
 
                      )
 
 {
 
     return TRUE;
 
 }
 
 //Наш код.
 
 //Добавляем функцию Add.
 
 __declspec(dllexport) int Add(int a, int b)
 
 {
 
     return a + b;
 
 }
 
 //Добавляем класс MyClass с методом MyMax.
 
 class MyClass {
 
 public:
 
     __declspec(dllexport) int MyMax(int a, int b){
 
         int res;
 
         if(a>b) res = a; else res = b;
 
         return res;
 
     }
 
 };

Обратите внимание, что добавляемы функции и методы, которые мы хотим вызывать извне, вы пишем с модификатором __declspec(dllexport). Таким образом мы помечаем так называемые экспортируемые функции.

Компилируем программу. В папке debug проекта должен появится файл firstdll.dll.

Теперь пишем тестовую программу. Для этого создаем опять новый проект типа Win32 Project, только теперь на вкладке Application Settings выбираем Console Application и ставим галочку Empty Project:

Окно Win32 Application Wizard

Нажимаем на Finish. Добавляем в проект (через меню Project -> Add New Item...) cpp-файл. Пусть он для определенности назван test.cpp. Добавьте в него следующий код:

#include <iostream.h>
 
 //Подключаем необходимый заголовочный файл.
 
 #include "..\firstdll.cpp"
 
 void main()
 
 {
 
     MyClass w;
 
     cout<<w.MyMax(22, -40)<<"\n";
 
     cout<<Add(10, 1)<<"\n";
 
 }

Запускаем программу. Как и следовало ожидать, она выведет 22 и 11.



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS