0

さて、ほとんどのプログラミング作業の方法について多くの質問をするのをやめたいと思います。私の質問のほとんどには、ここに設立された「MSDN を読んでください」という回答が与えられているからです。つまり、読み方やほとんどのプログラミング言語がわかりません。たとえば、MSDN の FtpCreateDirectory 関数を見てみましょう (ここで見つけることができます) 。

さて、この機能を学んだばかりで、試してみたいと思います。それをどのように読むか、それが示す機能/コマンドをどのように取るか。入力方法を教えてください。このレルトは役に立ちません:

BOOL FtpCreateDirectory(
_In_  HINTERNET hConnect,
_In_  LPCTSTR lpszDirectory
);

ありがとう!

4

2 に答える 2

1

私はこれを自分で使用したことはありませんが、ステップスルーして例を挙げましょう:

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 *UNICODETEXTUNICODE

作成するディレクトリの名前を含む null で終わる文字列へのポインター。これは、完全修飾パスまたは現在のディレクトリからの相対名のいずれかです。

ご覧のとおり、これは単なるパスなので、パスの例を渡しました。これは単なる例ですが、このパラメーターについての備考セクションの内容に注意してください。

  • 次に、戻り値を確認します。

成功した場合は TRUE を返し、それ以外の場合は FALSE を返します。特定のエラー メッセージを取得するには、GetLastError を呼び出します。(それ以上は表示されません)

したがって、呼び出しを if ステートメントでラップしてエラーをキャッチします。これにより、 を使用するためのコードを取得できますGetLastError。各関数の記事で説明されているエラー処理手法を使用することが重要です。多くの場合、エラーが発生した場合は を使用できますが、使用GetLastErrorをサポートしていないものもあれば、GetLastErrorさまざまな種類のエラー取得関数をサポートしているものもあります。そのため、各関数のガイドラインに従ってください。

それ以外は_In_、パラメータが入って後で役に立たないことを意味します。これは、特に とは対照的_Out_です。つまり、割り当てられたメモリを渡し、関数がそれに書き込むので、関数呼び出しの後に関数が書き込む値で使用できます。

于 2013-01-04T02:04:48.067 に答える
0

MSDNの参照部分には、APIセットのコンテキストを理解しているという基本的な前提があります。

win32 c(++)プログラミングが必要な場合は、Windowsプログラミング/win32のイントロを読む必要があります。興味のある分野が明確ではありません。デスクトップアプリ、サーバー、ドライバーなどを作成しようとしていますか。

場合によっては、CharlesPetzoldプログラミングウィンドウのような古典的な本から始めるのがよいでしょう。MSDNにはイントロレベルのものもたくさんあります(google'start win32programming')

于 2013-01-04T01:52:20.747 に答える