Clipper On Line • Ver Tópico - FTP, Cannot Load WinINet.DLL ?????

FTP, Cannot Load WinINet.DLL ?????

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

FTP, Cannot Load WinINet.DLL ?????

Mensagempor Ale SB » 03 Jan 2007 11:32

Blz galera,

Eu estou tentando compilar um exemplo de Ftp e aconteceu o seguinte :

CANNOT LOAD WinINet.dll !

Testei em 5 Micros:

3 com XP e conecçao ADSL, deu erro da DLL

1 com Win98 conecçao Via radio, deu certo

Este testei agora:
1 com XP conecçao Via radio, deu certo

O Ex. q eu estou testando eh este.

FTPDIR.PRG
// Testing the FiveWin new Internet Classes

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oInternet := TInternet():New()
   local oFTP      := TFTP():New( "ftp.host.com.br", oInternet,"UserName","PassWord" ) // Microsoft FTP   
   local aFiles

   if ! Empty( oFTP:hFTP )
      aFiles = oFTP:Directory( "*.*" )
      //      AEval( aFiles, { | aFile | MsgInfo( aFile[ 1 ] ) } )
      msginfo("conectou")
   else
      MsgAlert( "oFTP:hFTP is null" )
   endif

   oInternet:End()

   MsgInfo( "Done!" )

return nil

//----------------------------------------------------------------------------//



@braços Ale
Imagemr]
Avatar de usuário

Ale SB
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 199
Data de registro: 20 Jul 2004 17:30
Cidade/Estado: Campo Grande / MS
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Mensagempor rochinha » 06 Jan 2007 13:38

Ale

A WinINet.dll é uma DLL apropriada somente para Win98 ou menor.

Veja alguns trechos de meu aplicativo de trabalho on-line:

          REDEFINE BTNBMP ID 100 OF oDlg PROMPT "NET Update"    RESOURCE "bmpbtn91" ACTION ( FTPGetFiles( cServer,;
                          { "/fivolution/downloads/estoque.dbf","/fivolution/downloads/estoque.fpt" },;
                          { cPath+"estoque.dbf",cPath+"estoque.fpt" } ), oLbx2:Refresh(), oLbx2:UpStable() ) LEFT


No codigo acima o meu btão Update traz o estoque da central para a maquina do vendedor externo.

Outro trecho:
/*
**** **** **** **** **** **** **** **** **** **** **** **** ****
* FUNCAO: Modulo de download do arquivo de estoque
**** **** **** **** **** **** **** **** **** **** **** **** ****
*/
function FTPGetFiles( cFTPSite, aSource, aTarget )
   local oDlg, oSay1, oSay2, oSay3, oBtnCancel
   local oMeter1, oMeter2
   local nAmount1, nAmount2
   local lEnd := .f.
   local nBufSize := 2000
   local oInternet, oFTP
   cFTPSite  := "127.0.0.1"
   cUser     := ""
   cPassword := ""
   ESTOQUE->(dbCloseArea())
   if fErase( cPath+"ESTOQUE.DBF" ) > 0
      MsgStop( "Aquivo esta em uso. Impossivel continuar", "Atencao" )
      return .t.
   endif
   MsgRun( "Conectando ao FTP em "+cFTPSite+"...", "Aguarde",;
           { || oInternet := TInternet():New(),;
                oFTP := TFTP():New( cFTPSite, oInternet, cUser, cPassword ) } )
   if Empty( oFTP:hFTP )
      MsgStop( "Impossivel conectar ao site FTP!" )
      return nil
   endif
   DEFINE DIALOG oDlg RESOURCE "ICopyFiles" TITLE "Baixando arquivos de " + cFTPSite
          //REDEFINE BITMAP oBitMap ID  99 OF oDlg RESOURCE "logoBMP" //TRANSPAREN
          //REDEFINE BITMAP oBitMap ID 100 OF oDlg RESOURCE "desktop" TRANSPAREN
          REDEFINE SAY oSay1 ID 110 OF oDlg
          REDEFINE SAY oSay2 ID 120 OF oDlg
          REDEFINE METER oMeter1 VAR nAmount1 ID 130 OF oDlg
          REDEFINE SAY oSay3 ID 140 OF oDlg
          REDEFINE METER oMeter2 VAR nAmount2 ID 150 OF oDlg
          REDEFINE BUTTON oBtnCancel ID 2 OF oDlg ;
             ACTION ( lEnd := .t., SysRefresh(), oDlg:End() )
          oDlg:bStart := { || GetFiles( aSource, aTarget, nBufSize,;
                                  oSay1, oSay2, oMeter1, oSay3, oMeter2,;
                                  @lEnd, oDlg, oFTP ),;
                       oBtnCancel:SetText( "&Ok" )  }
   ACTIVATE DIALOG oDlg CENTERED
   fErase( cPath+"ESTOQUE.CDX" )
   USE ESTOQUE EXCLUSIVE                                   
       MsgRun( "Indexando ESTOQ016...", "Aguarde", {|| ( ordCondSet(,,,,,, RECNO(),,,, ) , ordCreate("estoque", "estoq016", "str(iditem,16,0)", {|| str(iditem,16,0) }, ) ) } )
       MsgRun( "Indexando ESTOQ017...", "Aguarde", {|| ( ordCondSet(,,,,,, RECNO(),,,, ) , ordCreate("estoque", "estoq017", "STR(REFERENCIA,16,0)", {|| STR(REFERENCIA,16,0) }, ) ) } )
       MsgRun( "Indexando ESTOQ018...", "Aguarde", {|| ( ordCondSet(,,,,,, RECNO(),,,, ) , ordCreate("estoque", "estoq018", "RESUMIDO", {|| RESUMIDO }, ) ) } )
       MsgRun( "Indexando ESTOQ019...", "Aguarde", {|| ( ordCondSet(,,,,,, RECNO(),,,, ) , ordCreate("estoque", "estoq019", "DESCRICAO", {|| DESCRICAO }, ) ) } )
       MsgRun( "Indexando ESTOQ020...", "Aguarde", {|| ( ordCondSet(,,,,,, RECNO(),,,, ) , ordCreate("estoque", "estoq020", "STR(IDLINHA,3,0)", {|| STR(IDLINHA,3,0) }, ) ) } )
       MsgRun( "Indexando ESTOQ021...", "Aguarde", {|| ( ordCondSet(,,,,,, RECNO(),,,, ) , ordCreate("estoque", "estoq021", "FABRICANTE", {|| FABRICANTE }, ) ) } )
   ESTOQUE->(dbCloseArea())
   USE ESTOQUE NEW SHARED INDEX ESTOQUE
   oInternet:End()
return nil

static function GetFiles( aSource, aTarget, nBufSize, oSay1, oSay2,;
                          oMeter1, oSay3, oMeter2, lEnd, oDlg, oFTP )
   local n
   local hTarget
   local cBuffer := Space( nBufSize )
   local nBytes, nFile := 0, nTotal := 0
   local nTotSize := 0
   local oFile, aFiles, aSizes := {}
   for n = 1 to Len( aSource )
       aFiles = oFTP:Directory( aSource[ n ] )
       if Len( aFiles ) > 0
          AAdd( aSizes, aFiles[ 1 ][ 2 ] ) // first file, size
          nTotSize += ATail( aSizes )
       else
          AAdd( aSizes, 0 )
       endif
       SysRefresh()
   next
   oMeter2:nTotal = nTotSize
   for n = 1 to Len( aSource )
       hTarget = FCreate( aTarget[ n ] )
       oFile = TFtpFile():New( aSource[ n ], oFTP )
       oFile:OpenRead()
       oSay1:SetText( "Origem: " + aSource[ n ] )
       oSay2:SetText( "Destino: " + aTarget[ n ] )
       oMeter1:Set( 0 )
       oMeter1:nTotal = aSizes[ n ]
       nFile := 0
       SysRefresh()
       while ( nBytes := Len( cBuffer := oFile:Read( nBufSize ) ) ) > 0 .and. ! lEnd
          FWrite( hTarget, cBuffer, nBytes )
          oSay3:SetText( "Bytes copiados: " + ;
                         AllTrim( Str( nTotal += nBytes ) ) )
          oMeter1:Set( nFile += nBytes )
          oMeter2:Set( nTotal )
          SysRefresh()
       end
       FClose( hTarget )
       oFile:End()
       if lEnd
         exit
       endif
   next
   return nil


No codigo acima eu uso o ICopyFile como base e tudo foi testado em Windows 2003 que possui as mesma compatibilidades do XP.

O ICpyFile esta em um diretorio do Fivewin de uma olhada e qualquer coisa grite
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro