Листинг 3. Пример приложения, вызывающего DLL.
// myExe.cpp
#include <windows.h>
extern "C" __declspec(dllimport) int MyFunction(char *str);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
int iCode=MyFunction("Hello!");
return 0;
}
Порядок выполнения работы
Задание динамической библиотеки в MS Visual Studio 2010.
1.1 Создание DLL. Для того чтобы создать DLL в Visual Studio 2010, необходимо, как показано на рисунке 1, выполнить команду: Файл→Создать→Проект→Приложение Win32 (Можно консольное либо проект Win32).
Рисунок 1. Окно выбора типа проекта.
Далее следует указать параметры приложения, как показано на рисунке 2.
Рисунок 2. Окно выбора параметров приложения.
После выбора, вводите имя и нажимаете ОК, затем далее и выбираете Тип приложения "библиотека DLL".
После этого вы компилируете dll и получаете 2 файла: dll.dll и dll.lib (в нашем примере), затем необходимо создать файл dll.h (в нашем примере), где указываете функции, которые находятся в этом dll файле.
Пример написания в хидер файл:
void LetterList();
int PutInt(int param);
В нем мы описываем прототипы наших функций. Этот файл вы будете вставлять в вашу программу, где будете подключать dll-файл.
1.2. DLL вызов функции.После того как полчим откомпилированный dll-файл, lib-файл и файл заголовков, все это нужно скопировать в нашу программу, где мы будем подключать dll файл. Для этого необходимо создать новый проект: Файл - Создать - Проект - Консольное Приложение Win32 - Готово. В этот проект вы указываете, где будет exe файл dll.dll и dll.lib, а хидер файл (dll.h) вы указываете, где ваши хидер файлы вашего проекта.
В полученный файл мы вписываем код программы, где вызываем наши две функции (PutInt иLetterList)
#include "stdafx.h"
#include "dll.h"
#include<iostream>
#include<conio.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int x = PutInt(5);
LetterList();
cout<<x;
_getch();
return 0;
}
Обратите внимание, что подключается файл dll.h ( #include "dll.h" ), который мы создали.
1.3. Подключение dll файла в Visual Studio. Далее необходимо подключить файл. В Visual Studio это делается следущим образом: Проект - Свойства - Компоновщик - Ввод - Дополнительные зависимости. Как показано на рисунке 3, здесь нужно добавить путь к файлу.lib.
Рисунок 3. Окно «Свойства проекта».
В нашем случае – это: D:\studio\Primer\Debug\dll.lib. Теперь компилируем проект и получаем результат, представленный на рисунке 4.
Рисунок 4. Окно приложения
Задание 2. Создание проекта библиотеки динамической компоновки (DLL)
1. В строке меню выберите Файл, Создать, Проект.
2. В левой области диалогового окна Новый проектразверните Установленные, Шаблоны, Visual C++и затем выберите Win32.
3. В центральной области выберите Консольное приложение Win32.
4. Укажите имя для проекта, например MathFuncsDll, в поле Имя. Укажите имя для решения, например DynamicLibrary, в поле Имя решения. Нажмите кнопку ОК.
5. На странице Обзордиалогового окна Мастер приложений Win32нажмите кнопку Далее.
6. На странице Параметры приложениявыберите в поле Тип приложенияпункт DLL.
7. Нажмите кнопку Готово, чтобы создать проект.