Amiguinho,
Eu geralmente faço da seguinte forma:
No inicio do programa defino uma variavel que irá manter o nome de minha .DLL:
#include "fivewin.ch"
#include "dll.ch"
#define DarumaDLL "Daruma32.dll"
function main(pCOM)
...
Uso desta forma porque muitas vezes ao chamar diretamente no comando DLL32 FUNCTION a .DLL eu obtinha erro.
Quanto as chamadas as funções da .DLL não use mais LONG e sim _INT assim:
DLL32 FUNCTION Daruma_Registry_ControlePorta( ControlePorta AS STRING ) AS _INT PASCAL;
FROM "Daruma_Registry_ControlePorta" LIB DarumaDLL
Veja que fiz a chamada Ã
DarumaDLL e isto pode ou não fazer efeito sobre os problemas.
Portanto altere somente o LONG por _INT e refaça a compilação