Dime una cosa; este parámetro del que hablamos, ¿es para recibir una función o para mandar una función? Es decir, ¿no será que egdb_open espera una función ya hecha? Porque de ser así, tendrías no sólo que declararla sino implementarla:
Código Delphi
[-]
procedure Mensajes(texto: pAnsiChar); cdecl;
begin
bla, bla, bla
end;
y al llamar a egdb_open pasas @Mensajes (arroba incluida) como parámetro.
// Saludos