Un ejemplo suma:
La función en la dll escrita en C:
Código:
extern "C" __declspec(dllexport)
int WINAPI Suma (int a, int b)
{
return a + b;
}
El extern "C", es para que se exporte la función con el mismo nombre (en este caso Suma).
Ahora el código Delphi:
Código Delphi
[-]
function Suma(a, b : integer) : integer; stdcall; external 'dlldondeestasuma.dll' name 'Suma';
var
n : integer;
begin
n := Suma(3, 2);
end.
Esto vale para variables enteras, float o similares. Pero no para cadenas, ya que hay que mandarlas como Pchar, que es el formato que usa C. Los arrays o estructuras de datos se pueden enviar como punteros.