Clipper On Line • Ver Tópico - Usar BLAT.DLL em xharbour 0.970
Mudar para estilo Clássico
Projeto Harbour - Compilador de código aberto compatível com o Clipper.
Postar uma resposta

Usar BLAT.DLL em xharbour 0.970

22 Jan 2014 14:04

Bom tarde, estou precisando de um ajudinha, atualmente uso o BLAT para envio de email através de linha de comando e funciona muito bem, só que a empresa trocou todo o servidor para uma maquina Virtualizada e nesta maquina acesso o sistema através de RadMin ou go-gobal, funciona tudo muito rápido o que ficou um pouco lento e a navegação em browse/dbedit, mais blz até ai, só que o bicho por algum motivo não deixa eu executar um arquivo em lote(.bat) de dentro do sistema, ai gostaria de usar a dll do blat para envio de email, até peguei uns código em harbour em funciona bem, só que preciso para xharbour 0.970 será que alguém teria isso feito em xharbour as declarações de uso desta dll, para me enviar fazendo um favor.

Frazato

Usar BLAT.DLL em xharbour 0.970

24 Jan 2014 03:28

Amiguinho,

Não sei se tem diferença na forma de declarar no xHarbour, mas segue um trecho onde eu declaro usando o comando próprio do Fivewin:
Código:
DLL32 FUNCTION SendB( sBlatString AS STRING ) AS LONG PASCAL ;
      FROM "SendBlat" LIB "Blat.dll"

DLL32 FUNCTION BlatSend( BlatCMD AS STRING ) AS LONG PASCAL;
      FROM "Send" LIB "Blat.dll"


Veja como esta o comando na DLL.CH:
Código:
#xcommand DLL32 [<static:STATIC>] FUNCTION <FuncName>( [ <uParam1> AS <type1> ] ;
                                                      [, <uParamN> AS <typeN> ] ) ;
             AS <return> [<pascal:PASCAL>] [ FROM <SymName> ] LIB <*DllName*> ;
       => ;
          [<static>] function <FuncName>( [NOREF(<uParam1>)] [,NOREF(<uParamN>)] ) ;;
             local hDLL := If( ValType( <DllName> ) == "N", <DllName>, LoadLib32( <(DllName)> ) ) ;;
             local uResult ;;
             local cFarProc ;;
             if Abs( hDLL ) <= 32 ;;
                MsgAlert( "Error code: " + LTrim( Str( hDLL ) ) + " loading " + <DllName> ) ;;
             else ;;
                cFarProc = GetProc32( hDLL,;
                If( [ Empty( <SymName> ) == ] .t., <(FuncName)>, <SymName> ),;
                [<.pascal.>], <return> [,<type1>] [,<typeN>] ) ;;
                uResult = CallDLL32( cFarProc [,<uParam1>] [,<uParamN>] ) ;;
                If( ValType( <DllName> ) == "N",, FreeLib32( hDLL ) ) ;;
             end ;;
          return uResult


Veja que ela chama a função CallDLL32(), mas nunca pesquisei se a mesma é do Harbour ou do Fivewin. Mas é ela que recebe os parâmetros. Portanto no xHarbour tem uma função semelhante chamada DLLCall().

Usar BLAT.DLL em xharbour 0.970

28 Jan 2014 07:17

Bom dia! vou testar e retorno, muito obrigado pela ajuda.

Frazato
Postar uma resposta