русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

DLL вызов функции c++. Пошаговое создание dll файла в Visual Studio 2010

Немного теории:

DLL ( англ. Dynamic-link library - динамически загружаемая библиотека) - реализованные компанией Microsoft общие библиотеки в ОС Windows и OS / 2. Как правило библиотеки имеют расширение файла *. dll, *. ocx (для библиотек, содержащих элементы управления ActiveX) или *. drv (драйверы старых версий ОС). Структура DLL такая же, как и в PE-файлов (Portable Executable) для 32 -, 64-разрядных Windows, и New-Executable (NE) для 16-битных Windows. DLL может содержать код, данные и ресурсы в любой комбинации.

Популярный вступление

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

Под Windows динамические библиотеки хранятся в файлах с расширением *. dll. Кроме подпрограмм там могут также храниться другие ресурсы, например, иконки илибитмапы. В коде приложения, использующего функции из динамической библиотеки, загрузки и выгрузки библиотеки должны быть прописаны непосредственно. Компилятору не требуется код функций, содержащихся в динамических библиотеках. При запуске программы, она, однако, искать соответствующую dll. Если такая dll не найдена на компьютере, то программа основном выполняться не будет, а выдаст сообщение об отсутствии динамической библиотеки.

 

Пошаговое создание dll в Visual Studio 2010

Для того чтобы создать dll в Visual Studio 2010, необходимо: Файл - Создать - Проект - Приложение Win32 (Можете консольное либо проект Win32).

После выбора, вводите имя и нажимаете ОК, затем далее и выбираете Тип приложения "библиотека DLL".

После этого вы попадаете на файл, где необходимо писать dll программы.

 

Пример написания dll файла

Самый простой пример кода следующий:

#include "stdafx.h"
#include <iostream>

extern "C++" __declspec(dllexport) void LetterList()
{
std::cout << "This function was called from LetterList() " << std::endl;
}

extern "C++" __declspec(dllexport) int PutInt(int param)
{
return param;
}

Одна функция выводит сообщение, другая функция возвращает принятое значение.

После этого вы компилируете dll и получаете 2 файла: ***.dll и ***.lib (в моем примере это будет dll.dll и dll.lib), затем вам необходимо создать хидер файл (***.h в моем примере это будет dll.h), где указываете функции, которые находятся в этом dll файле.

Пример написания в хидер файл:

void LetterList();
int PutInt(int param);

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

 

DLL вызов функции c++

Многие задают вопрос: как вызвать функцию с dll файла c++. В этой статье мы описываем это.

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

Для этого необходимо создать новый проект: Файл - Создать - Проект - Консольное Приложение Win32 (к примеру) - Готово. В этот проект вы вкидываете, где будет exe файл dll.dll и dll.lib, а хидер файл (dll.h) вы вкидываете, где ваши хидер файлы вашего проекта.

В полученный файл мы вписываем код программы, где вызываем наши две функции (PutInt и LetterList)

#include "stdafx.h"
#include "dll.h"
#include<iostream>
#include<conio.h>

int _tmain(int argc, _TCHAR* argv[])
{
int x = PutInt(5);
LetterList();

std::cout<<x;

_getch();
return 0;
}

Обратите внимание, что мы подключаем хидер файл ( #include "dll.h" ), который мы создали.

Уже осталось немного )))

 

Подключение dll файла в Visual Studio

Нам осталось только подключить файл. В Visual Studio это делается так: Проект - Свойства - Компановщик - Ввод - Дополнительные зависимости. Туда вы добаляете путь к вашему файлу.lib

В моем случае - это: D:\studio\Primer\Debug\dll.lib;

Теперь компилируете проект и получаете такой результат:

Вот так работают с dll файлами. Я считаю, что это самый простой метод для работы с динамически загружаемыми библиотеками.

Итак: в этой статье я ответил на воспросы:

  • создание dll в visual studio 2010
  • использование dll файла
  • dll вызов функции c++
  • как вызвать функцию с dll файла c++
  • подключение dll файла
  • использование dll файла
  • пример написания dll файла
  • пошаговое создание dll в visual studio 2010

У вас должно быть вот так:

*.dll и *.lib в папке Debug, а *.h в проекте.

Просмотров: 23526

Вы можете --> Заказать программу или Задать вопрос на форуме

Вернуться воглавление


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.