Si vas a tener la rutina dentro de un dll, no entiendo por que usas la directiva "of object" al declarar el tipo procedural.
Si es que tenes alguna razón, ¿podrias explicarmela?, si no, quizas por allí vaya tu problema.
Cómo ya te ha dicho seoane, hay que ver con que estándar de llamada está compilada la función en el dll y usar el mismo al declarar el tipo procedural.
Hasta luego.