Holas! me imaginé que el parametro era de tipo string, tu problema podria ser que VB y Delphi manejan de foma distinta los tipos string o como se produce su pasaje en la funcion, es decir si es por valor o por referencia, igualmente no podria decirte con exactitud.
Pero te recomendaria que pruebes declarar tu funcion de la siguinete forma:
Código Delphi
[-]
function GenerateMD5(Cadena: PAnsiChar): PAnsiChar;
si el problema fuera el que te comenté, esto deberia funcionar... cualquier cosa avisanos!