// File dll.h
#ifndef _DLL_H_
extern "C" {
#define _DLL_H_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
#ifdef __cplusplus
#endif
class DLLIMPORT DllClass //Esporta ls classe
{
  public:
    DllClass();
    virtual ~DllClass(void);
    int Somma(int a, int b);
  private:
};
}
#endif /* _DLL_H_ */
// File dll.h
#include "dll.h"
#include <windows.h>
DllClass:

llClass()
{
}
DllClass::~DllClass ()
{
}
int DllClass::Somma(int a, int b)
{
    return a+b;
}
BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                       DWORD reason        /* Reason :inizzio di chiamata. */ ,
                       LPVOID reserved     /* Non usata. */ )
{
    switch (reason)
    {
      case DLL_PROCESS_ATTACH:
        break;
      case DLL_PROCESS_DETACH:
        break;
      case DLL_THREAD_ATTACH:
        break;
      case DLL_THREAD_DETACH:
        break;
    }
    /* Ritorna TRUE se l'esito è positivo, FALSE se fallisce */
    return TRUE;
}
// File client.cpp
include <iostream>
#include <stdlib.h>
using namespace std;
#include "dll.h"
int main(int argc, char* argv[])
{
	DllClass myCLassFromDll;
	cout << myCLassFromDll.Somma(5,5) << endl;
    
    system("pause");
	return 0;
}