FtpFileDelete()にて Error 12003? – プログラミング – Home

通知
すべてクリア

FtpFileDelete()にて Error 12003?


泰三
 泰三
(@泰三)
ゲスト
結合: 22年前
投稿: 14
Topic starter  

FTPにて一度送信したファイルをFtpDeleteFile()にて消す際にエラーとなり
WSAGetLastError()で取得したエラーコードが「12003」でした。

ネットで調べたのですが、見つかりませんでした。
エラーコード12003って何なんでしょうか?


引用解決済
トピックタグ
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 22年前
投稿: 160
 

>ネットで調べたのですが、見つかりませんでした。
>エラーコード12003って何なんでしょうか?

ネットで見つからないのであれば…
ヘッダファイルから探してみてはどうでしょうか?
とりあえず、FtpDeleteFileでGrepすると、WININET.Hにありました。
(includeしていますよね?)
で、該当ファイルを開き、ERRで検索していくと下記のような箇所が見つかると思います。

#define INTERNET_ERROR_BASE 12000
#define ERROR_INTERNET_EXTENDED_ERROR (INTERNET_ERROR_BASE + 3)

次に見つけた「ERROR_INTERNET_EXTENDED_ERROR」をGoogleで探すと、
下記のMSのページが見つかりました。

http://www.microsoft.com/japan/developer/library/vidref/dvmsgerrormessages.htm

WinInetは使ったコトないので、ここまでですが……


返信引用
泰三
 泰三
(@泰三)
ゲスト
結合: 22年前
投稿: 14
Topic starter  

瀬戸っぷさん有難うございます。
早速やってみたのですが、

InternetGetLastResponseInfo()の使い方が分かりません。

引数に求められている
InternetGetLastResponseInfo(
LPDWORD lpdwError,
LPTSTR lpszBuffer,
LPDWORD lpdwBufferLength
);
にはそれぞれ何をいれてあげれば良いのでしょうか?

どなたか宜しくお願いします。


返信引用
...
 ...
(@...)
ゲスト
結合: 22年前
投稿: 113
 

MSDNに書いてあります。


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 22年前
投稿: 160
 

>引数に求められている
>InternetGetLastResponseInfo(
> LPDWORD lpdwError,
> LPTSTR lpszBuffer,
> LPDWORD lpdwBufferLength
>);
>にはそれぞれ何をいれてあげれば良いのでしょうか?

とりあえず、Googleで上記を検索。
残念ながら、有効なページは見つかりませんでした。
(MSDNオンラインが見つかるコトを期待したのですが…)

と、いうコトで少々乱暴ですが、名前から推察してみます。
まず第一引数。
DWORDのポインタを要求していることと、名前がErrorを含んでいるので、
指定したポインタにエラー番号を返すものと想像します。
渡すモノとしては、DWORDの変数のポインタですね。(LPDWORDなので)
次に第二引数。
LPTSTRなので、なんらかの文字列を返してくれるようです。
というコトで受け取り用のメモリのポインタでしょう。
TCHAR szErrorMsg[MAX_PATH]
として、それを渡せばいいでしょう。(確保したサイズが適当かは不明ですが)
最後に第三引数。
またしてもLPDWORDなので、DWORDの変数のポインタを。
名前がBufferLengthとなっているので、バッファの長さと思われます。
しかし、第二引数で渡した受け取りバッファのサイズがAPI中では不明となります。
念のためこの変数にバッファのサイズを入れて呼び出してみるコトにする。
と、いったところでどうでしょう?

と、ココまで書いて手元のMSDNを調べてみました。

Parameters

lpdwError
Address of an unsigned long integer variable that receives an error message
pertaining to the operation that failed.
lpszBuffer
Address of a buffer that receives the error text.
lpdwBufferLength
Address of an unsigned long integer variable that contains the size of the
lpszBuffer buffer in TCHAR. When the function returns, this parameter contains
the size of the string written to the buffer.

と、いうコトでおおむねあっていたようです。

書いておいてなんですが、私は使ったコトはありませんので半分くらいは推測ですし、
返されるエラー番号がどういうものなのかは不明です。


返信引用
七つ夜
 七つ夜
(@七つ夜)
ゲスト
結合: 22年前
投稿: 8
 

いつからここはMSDNヘルプになったのかな?っていう素朴な疑問は置いておいて・・・

泰三さんはヘルプ持ってないんですか?VC++のメニュー「ヘルプ」から「検索」を選択
して、「12003」で検索すればいくつか出てきますが。

------------------------------------------------------------------------
 Article ID : Q168492
Title : PRB: FTP WinInet APIs Report Error 12003

この問題は、FTP サーバーによって返されるテキストが、WinInet で解釈できない
フォーマットの場合に発生します。
-------------------------------------------------------------------------

今回のはこれかな?詳細はヘルプを見てください。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました