私はこれを自分で使用したことはありませんが、ステップスルーして例を挙げましょう:
HINTERNET hinternet = InternetConnect(...); //assume hinternet is valid
if (!FtpCreateDirectory(hinternet, "C:\\example")) {
std::cerr << "Error creating FTP directory. Code: " << GetLastError();
}
ステップバイステップ:
- まず、
HINTERNET
ハンドルを取得します。どのように?さて、ドキュメントはパラメータについてこれを言います:
INTERNET_SERVICE_FTP を使用した InternetConnect への以前の呼び出しによって返されたハンドル。
そのためInternetConnect
、例で呼び出しました。
- 次に、2 番目のパラメーターを見ていきます。記事を見ると、が定義されているかどうかに応じて、またはの
Windows Data Types
いずれかを取ることがわかります。簡単にするために、そうではないかのように振る舞いましたが、マクロを使用して文字列リテラルの幅を広げたり狭めたりすることができます。CONST WCHAR *
CONST CHAR *
UNICODE
TEXT
UNICODE
作成するディレクトリの名前を含む null で終わる文字列へのポインター。これは、完全修飾パスまたは現在のディレクトリからの相対名のいずれかです。
ご覧のとおり、これは単なるパスなので、パスの例を渡しました。これは単なる例ですが、このパラメーターについての備考セクションの内容に注意してください。
成功した場合は TRUE を返し、それ以外の場合は FALSE を返します。特定のエラー メッセージを取得するには、GetLastError を呼び出します。(それ以上は表示されません)
したがって、呼び出しを if ステートメントでラップしてエラーをキャッチします。これにより、 を使用するためのコードを取得できますGetLastError
。各関数の記事で説明されているエラー処理手法を使用することが重要です。多くの場合、エラーが発生した場合は を使用できますが、使用GetLastError
をサポートしていないものもあれば、GetLastError
さまざまな種類のエラー取得関数をサポートしているものもあります。そのため、各関数のガイドラインに従ってください。
それ以外は_In_
、パラメータが入って後で役に立たないことを意味します。これは、特に とは対照的_Out_
です。つまり、割り当てられたメモリを渡し、関数がそれに書き込むので、関数呼び出しの後に関数が書き込む値で使用できます。