StrDupW 関数 (shlwapi.h)
文字列を複製します。
構文
PWSTR StrDupW(
PCWSTR pszSrch
);
パラメーター
pszSrch
種類: PCTSTR
定数 null で終わる文字列へのポインター。
戻り値
種類: PTSTR
コピーされた文字列のアドレスを返します。文字列をコピーできない場合は NULL を 返します。
注釈
StrDup は、元の文字列のサイズにストレージを割り当てます。 ストレージ割り当てが成功すると、元の文字列が重複する文字列にコピーされます。
この関数は LocalAlloc を使用して、文字列のコピー用の記憶域領域を割り当てます。 呼び出し元のアプリケーションは、StrDup の呼び出しによって返されるポインターで LocalFree 関数を呼び出すことによって、このメモリを解放する必要があります。
例
この単純なコンソール アプリケーションは、 StrDup の使用方法を示しています。
#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>
void main(void)
{
char buffer[] = "This is the buffer text";
char *newstring;
// Note: Never use an unbounded %s format specifier in printf.
printf("Original: %25s\n", buffer);
newstring = StrDup(buffer);
if (newstring != NULL)
{
printf("Copy: %25s\n", newstring);
LocalFree(newstring);
}
}
OUTPUT:
- - - - - -
Original: This is the buffer text
Copy: This is the buffer text
注意
shlwapi.h ヘッダーは、STRDup をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional、Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shlwapi.h |
Library | Shlwapi.lib |
[DLL] | Shlwapi.dll (バージョン 4.71 以降) |