6

したがって、関数 GetUserName() の出力は、ユーザー名を LPTSTR として提供します。ユーザー名をftpディレクトリの名前にしたいので、これをLPCSTRに変換する必要があります。

TCHAR id [UNLEN+1];
DWORD size = UNLEN+1;
GetUserName(id, &size); // this is an LPTSTR

FtpCreateDirectory(hFtpSession,id) // 2d parameter should be an LPCSTR

問題は、LPTSTR 文字列を LPCSTR 文字列に変換する必要があることです。今、私はそれを知っています:

LPTSTR は (非 const) TCHAR 文字列で、LPCSTR は const 文字列です。

しかし、TCHAR を const 文字列に変換するにはどうすればよいでしょうか?

私は豊富なプログラミング/C++ のバックグラウンドを持っていないことに注意する必要があります。また、ユニコードではなくマルチバイトでコンパイルしていることにも注意する必要があります。

4

3 に答える 3

4

Unicode ではなくマルチバイト用にコンパイルしているので、何もする必要はありません。単なるto変換であるLPTSTRため、暗黙的に toに変換されます。LPCSTRchar*const char*

于 2012-05-12T16:58:08.807 に答える
2

Unicode 用にコンパイルしていない場合はTCHAR=charであるため、何も変換する必要はありません。一方、Unicode 用にコンパイルする場合は、変換を実行する必要があります。これにはいくつかの選択肢があります。こちらをご覧ください。

于 2012-05-12T16:58:40.093 に答える
0
TCHAR id [UNLEN+1];
DWORD size = UNLEN+1;
GetUserName(&id[0], &size); // this is an LPTSTR

FtpCreateDirectory(hFtpSession,&id[0]);

このコードは、ユニコードまたはマルチバイト ビルドで動作するはずです。

于 2012-05-12T19:15:41.277 に答える