Moja bibliotek DLL eksportuje taka funkcję:

function Crypt(Alogtithm:Integer;Key:pchar;InBuffer:Pointer;InputSize:Integer;var OutBuffer:Pointer):integer;stdcall;

W programie, który korzysta z tej funkcji:

InBuf:=AllocMem(Rozmiar);
rozmiar:=Crypt(0,'klucz',InBuf,rozmiar,OutBuf);
//zapisz OutBuf
FreeMem(InBuf);
FreeMem(OutBuf);

Problem w tym, że z biblioteki do programu zwracany jest wskażnik na jakieś "śmieci", a przy zwalnianiu pamięci powstaje błąd naruszenia dostępu. W DLL-ce ma być alokowana pamięć dla OutBuffer, a w programie zwalniana. Jak przekazać ten wskaźnik??? ;-(