Bei den Schweizern gibt's
hier einen Beispielcode, der malloc, realloc und free aus msvcrt.dll einbindet und damit den Borland Memory-Manager überflüssig macht.
Ähnlich sähe es bei dir auch aus. Wenn du die Routinen nicht benutzt, dann reicht es wahrscheinlich sogar aus, sie ohne wirklichen Prototypen zu deklarieren - es muss ja nur der Name bekannt sein.
Beispiel:
Delphi-Quellcode:
implementation
const
msvcrt = 'msvcrt.dll';
procedure printf; cdecl; external msvcrt;
procedure fopen; cdecl; external msvcrt;
procedure fclose; cdecl; external msvcrt;
// ...
Wenn der eingebundene C-Code Speicher benötigt, dann solltest du allerdings entweder den in der Bibliothek oben beschriebenen Weg gehen
oder die Funktionen selbst neu definieren, also:
Delphi-Quellcode:
function malloc(size: integer): pointer; cdecl;
begin
Result := AllocMem(size);
end;
function calloc(count, size: integer): pointer; cdecl;
begin
Result := AllocMem(count * size);
FillChar(Result^, count * size, #0);
end;
function realloc(ptr: pointer; size: integer): pointer; cdecl;
begin
Result := ReAllocMem(ptr, size);
end;
procedure free(ptr: pointer); cdecl;
begin
FreeMem(ptr);
end;