Неявное подключение и использование динамических библиотек (dll)

Для того, чтобы можно было пользоваться функциями расположенными в динамической библиотеке их нужно объявлять с ключевым словом __declspec(dllexport), например: void __declspec(dllexport) MyFunc(), а вот в проекте, к которому будет подключен dll файл, следует, придерживаться данному правилу объявления импортируемых функций: void __declspec(dllimport) MyFunc(). Для наглядности я опишу процесс создания библиотеки dll и её использования.
В качестве примера запихаем в dll функцию сложения двух чисел. Для начала объявим прототип функции сложения в заголовочном файле header.h:

int __declspec(dllexport) Sum(int a, int b);

И реализуем в файле DllMain.cpp:

#include <windows.h>
#include "header.h"

bool APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
	return true;
}

int __declspec(dllexport) Sum(int a, int b)
{
	return a + b;
}

Читать далее