次の方法で共有


StrDupA 関数 (shlwapi.h)

文字列を複製します。

構文

PSTR StrDupA(
  PCSTR pszSrch
);

パラメーター

pszSrch

型: PCTSTR

null-terminated 文字列 定数へのポインター。

戻り値

型: 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 ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして StrDup を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー shlwapi.h
ライブラリ Shlwapi.lib
DLL Shlwapi.dll (バージョン 4.71 以降)