Intanto vi starete chiedendo cosa sia un file DLL. DLL sta per dynamic-link library, cioè libreria a collegamento dinamico. Non è altro che una libreria software che viene caricata dinamicamente in fase di esecuzione, invece di essere collegata staticamente ad un eseguibile in fase di compilazione. In un file DLL possiamo mettere tutto quello che vogliamo: classi, funzioni, etc che poi richiameremo da un progetto eseguibile.

Ora creiamo un piccolo programma console per sommare e moltiplicare due numeri reali di tipo long. Sia che usiate un ambiente IDE o blocco note con il compilatore CSC il procedimento è lo stesso. All'ultimo spiego come compilare in tutte e due i metodi (IDE o CSC).

Iniziamo col creare un file chiamato Calcolo.cs (in seguito sarà la nostra libreria dinamica).

In questo file scriviamo (evitare il copia-incolla per apprendere meglio il codice):

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Calcolo
{
  public class operazioni
  {
    public static long somma(long x, long y)
    {
      return (x+y);
    }
    
    public static long prod(long x, long y)
    {
      return (x*y);
    }
  }
}   

 

salviamo il file appena creato.

Commento del codice:

il namespace (spazio dei nomi) è Calcolo. Questo contiente la classe operazioni che a sua volta contiene due metodi: somma e prod che rispettivamente restituiscono la somma e il prodotto dei numeri passati come parametri.

Ora se avete usato Visual C# 2008 Express Ed. della Microsoft dovete aggiungere un progetto Console. Se non usate un IDE basta creare nella stessa cartella del file Calcolo.cs un nuovo file chiamato DllTest.cs (o come volete). Questo, una volta compilato, userà la nostra DLL.

Nel file DllTest.cs inserite questo codice:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Calcolo; //nome del namespace creato in precedenza

namespace DLLtest
{
    class Program
    {
        static void Main(string[] args)
        {
            long num1;
            long num2;
            Console.Title = "Uso di librerie DLL in C sharp";
            Console.WriteLine("Inserisci un numero reale intero e premi invio");
            num1 = long.Parse(Console.ReadLine());
            Console.WriteLine("Inserisci un altro numero reale intero e premi invio");
            num2 = long.Parse(Console.ReadLine());
            long addi = operazioni.somma(num1, num2);
            long molti = operazioni.prod(num1, num2);
            Console.WriteLine();
            Console.WriteLine("{0} + {1} = {2}", num1, num2, addi);
            Console.WriteLine("{0} * {1} = {2}", num1, num2, molti);
            Console.WriteLine();
            Console.Write("Premi invio per chiudere");
            Console.ReadLine();
        }
    }
}

Ora se usate un IDE, al progetto DllTest aggiungete un riferimento al progetto Calcolo e poi compilate il progetto DllTest. Se non usate un IDE effettuate questi passaggi:

  1. Aprire una shell di DOS;
  2. Con 'cd' spostatevi nella cartella dove sono contenuti i file Calcolo.cs e DllTest.cs;
  3. digitare: "csc /target:library /out:Calcolo.DLL Calcolo.cs";
  4. premere invio e digitare: "csc /out:DllTest.exe /reference:Calcolo.DLL DllTest.cs"

Infine aprire il file DllTest.exe.

Buon divertimento :D