Cita:
	
	
		| 
					Empezado por Ramon88  No puedo usar la DLL.Error:
 Asegurese de que tiene acceso al archivo y de que es un ensamblado o componente COM válido.
 | 
	
 
Pues he vuelto a probar lo que hay en el ZIP y me funciona.
Tienes la DLL, el EXE que la llama y el código fuente.
Puedes probar a hacer un proyecto nuevo con la llamada. Es sencillo:
Código Delphi 
[-]
program testDLL;
{$APPTYPE CONSOLE}
{$R *.res}
uses
  ShareMem,
  Vcl.forms,
  WinAPI.Windows,
  VCL.Dialogs,
  System.SysUtils;
type
  TfunctionCRC8S = function(const AText:string): byte;
  TfunctionCRC8P = function(const AText:PAnsiChar): byte;
var
  str, fName:String;
  b:byte;
  h:cardinal;
  fs:TfunctionCRC8S;
  fp:TfunctionCRC8P;
begin
    fName := ExtractFilePath(Application.ExeName) + 'crc8.dll';
    if not FileExists(fName) then
    raise Exception.Create('No se encuentra la DLL  en: ' + sLineBreak + fName);
    h := LoadLibrary(PChar(fName));
  if (h < 32) then
    raise Exception.Create('No se ha podido cargar la DLL');
    fs := GetProcAddress(h, 'crc8S');
  fp := GetProcAddress(h, 'crc8P');
    if Assigned(fs) and Assigned(fp) then begin
    WriteLn('Escribir cadena de entrada o vacío para salir: ');
    ReadLn(Str);
    while (Str <> string.empty) do begin
            b := fs(Str);
      WriteLn('Cadena de entrada: ' + str);
      writeLn('Salida (string): ' + string.Format('%.3d',[b]));
      writeLn('-------------------------------');
            b := fp(PAnsiChar(Str));
      WriteLn('Cadena de entrada: ' + str);
      writeLn('Salida (PAnsiChar): ' + string.Format('%.3d',[b]));
      writeLn('-------------------------------');
      writeln(' ');
            WriteLn('Escribir cadena de entrada o vacío para salir: ');
      readLn(Str);
    end;
  end;
end.
¿Lo has probado con el EXE?
¿Estás llamando a la DLL desde otro lenguaje?