lstrcpynW

ソース文字列からバッファに指定数の文字をコピーする。警告 使用しないこと。(Unicode)

lstrcpynW lpString1, lpString2, iMaxLength

lpString1 : [wstr] 型: LPTSTR コピーされた文字を受け取る宛先バッファ。終端 NULL の領域も含めて iMaxLength で指定された TCHAR 値を格納するのに十分な大きさが必要。
lpString2 : [wstr] 型: LPCTSTR コピー元の文字列。
iMaxLength : [int] 型: int 終端 NULL を含めて、lpString2 が指す文字列から lpString1 が指すバッファにコピーする TCHAR 値の数。

(プラグイン / モジュール : kernel32.dll)

解説

ソース文字列からバッファに指定数の文字をコピーする。警告 使用しないこと。(Unicode)

[戻り値]
型: LPTSTR 関数が成功した場合、戻り値はバッファへのポインタ。ソース文字列が iMaxLength
より長くても成功する。関数が失敗した場合、戻り値は NULL で、lpString1 は NULL 終端されていない可能性がある。

[備考]
lpString1 が指すバッファは終端 NULL を含むのに十分な大きさが必要で、iMaxLength で指定された文字列長値には終端
NULL の領域が含まれる。lstrcpyn はソースバッファと宛先バッファが重なる場合の動作が未定義。セキュリティ警告:
本関数を誤って使うとアプリケーションのセキュリティが損なわれる可能性がある。本関数は SEH でアクセス違反などのエラーを捕捉する。SEH
エラーを捕捉した場合、NULL 終端せず呼び出し側に通知せずに NULL を返す。lpString1
が指すバッファがコピー文字列を格納するのに十分でない場合、バッファオーバーランが発生し得る。文字列全体をコピーする際、sizeof
はバイト数を返すことに注意。たとえば lpString1 が TCHAR szString[100] と宣言された szString1
を指す場合、sizeof(szString1) はバイト単位のサイズとなり、Unicode
版でバッファオーバーフローを引き起こす可能性がある。sizeof(szString1)/sizeof(szString1[0])
を使うと適切なサイズが得られる。代わりに StringCchCopy の使用を検討する。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs