[リストへもどる]
一括表示

投稿時間:2003/05/14(Wed) 16:07
投稿者名:emi
Eメール:
URL :
タイトル:
Wininet.dllでのアップロード
以前、「インターネットトランスファコントロールでのアップロード」について
同じような質問をしたものです。

先日は、Wininet.dllを使用したら成功したと書き込みましたが
その後やはりFTPを使用したアップロードを行った後、
プログラム(フォーム)を終了しようとするとVB、ソフトともに固まってしまいました。

しかし、固まらずに終了することもあります。
また、別のPCで試したところ一台が成功。一台が失敗。というような感じでした。
安定してアップロードが行えるようにしたいのですが。
どなたか、知恵を貸していただけないでしょうか?

開発環境:VB6
OS:WIN2000
です。

たびたび同じ質問ですいません。よろしくお願いします。
========コードです。==============
Public Function FtpPut(sFtpSvr As String, sUserID As String, sPassword As String, _
        sRfile As String, sLfile As String) As Boolean
    
    Dim hInet As Long       'インターネット接続ハンドル
    Dim hFTP As Long        'FTP接続ハンドル
    Dim Ingret As Long
    
    FtpPut = True
    
    On Error GoTo ErrHandler
    
    hInet = InternetOpen(vbNullString, _
                            INTERNET_OPEN_TYPE_PRECONFIG, _
                            vbNullString, _
                            vbNullString, _
                            0&)
    
    If hInet = 0 Then
        Debug.Print "オープン失敗"
        FtpPut = False
        Exit Function
    Else
        Debug.Print "オープン成功"
    End If
    
    hFTP = InternetConnect(hInet, sFtpSvr, INTERNET_DEFAULT_FTP_PORT, _
                            sUserID, sPassword, INTERNET_SERVICE_FTP, _
                            0&, 0&)
    
    If hFTP = 0 Then
        Debug.Print "コネクト失敗"
        FtpPut = False
        Exit Function
    Else
        Debug.Print "コネクト成功"
    End If
    
    Ingret = FtpPutFile(hFTP, sLfile & vbNullChar, _
                    sRfile & vbNullChar, _
                    FTP_TRANSFER_TYPE_BINARY, _
                    0&)
    If Ingret = 0 Then
        Debug.Print "アップ失敗"
        FtpPut = False
    Else
        Debug.Print "アップ成功"
    End If
    
    lngret = InternetCloseHandle(hFTP)
    If Ingret = 0 Then
        Debug.Print "クローズ失敗ftp"
        FtpPut = False
    Else
        Debug.Print "クローズ成功ftp"
    End If
    
    Ingret = InternetCloseHandle(hInet)
    If Ingret = 0 Then
        Debug.Print "クローズ失敗inet"
        FtpPut = False
    Else
        Debug.Print "クローズ成功inet"
    End If
    
    Exit Function
    
'------------------
'   エラー処理
'------------------
ErrHandler:
    
    FtpPut = False
    Debug.Print "エラー" & Error(Err)
    Exit Function

End Function

=====ここまで=====

投稿時間:2003/05/15(Thu) 01:58
投稿者名:Starfish
Eメール:
URL :
タイトル:
まずは何が起こっているかを調べること
Debug.Print のところは、VBの開発環境下でで動かしたときにしかわかりませんよね。
今はEXEにして動かしていると思いますので、それぞれの関数で戻ってきているのか
戻り値は何だったのかわかっていないと思います。

Debug.Printのところを、テキストボックスやリストボックスに出力してみるなり、
ファイルに出力してみて、うまく動かないときに何が起こっているかを調べる
必要があると思います。

投稿時間:2003/05/15(Thu) 06:50
投稿者名:emi
Eメール:
URL :
タイトル:
Re: まずは何が起こっているかを調べること
ご返答ありがとうございます。

> Debug.Print のところは、VBの開発環境下でで動かしたときにしかわかりませんよね。
> 今はEXEにして動かしていると思いますので、それぞれの関数で戻ってきているのか
> 戻り値は何だったのかわかっていないと思います。
>
> Debug.Printのところを、テキストボックスやリストボックスに出力してみるなり、
> ファイルに出力してみて、うまく動かないときに何が起こっているかを調べる
> 必要があると思います。
現在、VB開発環境下で動かしています。
どこで動かなくなるかというと、すべてのコードを終えた後かたまってしまいます。
フォームをすべて閉じてないからか?と思い、フォームをすべて閉じるようにしてみたのですが・・

自分自身で何がおきているのか把握できていないので
Debug.Print等使って調べてみます。
ありがとうございました。