Clipper On Line • Ver Tópico - Usar BLAT.DLL em xharbour 0.970
Página 1 de 1

Usar BLAT.DLL em xharbour 0.970

MensagemEnviado: 22 Jan 2014 14:04
por frazato
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

MensagemEnviado: 24 Jan 2014 03:28
por rochinha
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:
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:
#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

MensagemEnviado: 28 Jan 2014 07:17
por frazato
Bom dia! vou testar e retorno, muito obrigado pela ajuda.

Frazato