Zitat:
long bschoc (const char * value,
long ndim,
long lenvals,
const void * array,
const long * order)
Ohne Dokumentation der Parameter kann man damit wenig anfangen. Dem Beispiel nach nach ist "array" in diesem Fall wohl ein Array von char *, d.h. der Parameter hätte eigenlich als const char** array deklariert sein müssen, wenn meine (lückenhafte) Kenntnis der C-Syntax korrekt ist. Eine mögliche Übersetzug wäre dann
function bschoc( Value: PAnsichar; ndim: Integer; lenvals: Integer; array: PPAnsiChar; order: PInteger): Integer; cdecl;
Für den Array könntest Du je nach Bedarf eine Variable vom Typ array [0..N] of PAnsiChar oder auch TArray<PAnsiChar> (wenn die Zahl der Element variable ist) verwenden und dann die Addresse des ersten Elementes des Arrays übergeben.
Was irgendwie nicht ins Bild passt ist der "ndim" Parameter, der erweckt in mir den Verdacht, dass man der Funktion eigentlich einen mehrdimensionalen array übergeben kann. Dann sollte lenvals aber als long * lenvals definiert sein, damit man damit die Zahls der Elemente pro Dimension übergeben kann. Das Beispiel übergibt die Zahl der Elemente in "ndim" und zeigt nicht, was lenvals da sein soll.