hola...
al ver tu función creo que el problema esta en que si, efectivamente declaras una variable de tipo PChar, pero esta apunta a ningun lado, por lo que al tratar la función de ponerte en ella los resultados pues te manda el error que mencionas, lo que tienes que hacer es "reservar" para esa variable (apuntador) el espacio de memoria suficiente para valor de retorno...
para un manejo mas sencillo yo cambiaria algunas lineas como sigue :
Código Delphi
[-]
Template,GuideMessage : Pchar;
Template, GuideMessage : String;
SetLength(Template, 100);
SetLength(GuideMessage, 100);
res := Enrola(Template,'D:\MIENTRAS\prueba.bmp',GuideMessage,Form1.Handle,0,0,0,0,1);
res := Enrola(PChar(Template),'D:\MIENTRAS\prueba.bmp',PChar(GuideMessage),Form1.Handle,0,0,0,0,1);
SetLength(Template, StrLen(PChar(Template)));
SetLength(GuideMessage, StrLen(PChar(GuideMessage)));
asi me ha funcionado, pero en el foro hay personas mas versadas en estos manejos por lo que puede que alguien te de una mejor sugerencia.
espero te sirva...
saludos...