si, tienes razon con la incogruencia, lo que pasa que tenia muchas funciones declaradas y las quite porque no venian al caso, y deje una funcion equivocada en el ejemplo.
En fin, resolvi el caso simplemente con definir el szField como Pchar y no como String.
Código Delphi
[-]TAddMessageField = function (szField : PChar; lFieldLength : Integer) : Integer; Stdcall;