StrDupA 関数 (shlwapi.h)
文字列を複製します。
構文
PSTR StrDupA(
PCSTR 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 バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional、Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shlwapi.h |
Library | Shlwapi.lib |
[DLL] | Shlwapi.dll (バージョン 4.71 以降) |