[この関数は、Windows XP と Windows Server 2003 を通じて使用できます。 それ以降のバージョンの Windows では、変更または使用できない可能性があります。
ANSI 文字列をコピーします。
構文
int SHAnsiToAnsi(
[in] PCSTR pszSrc,
[out] PSTR pszDst,
int cchBuf
);
パラメーター
[in] pszSrc
型: LPCSTR
Unicode に変換する null で終わる ANSI 文字列へのポインター。
[out] pszDst
型: LPWSTR
この関数が正常に戻るときに pszSrc からコピーされた文字を受け取るバッファーへのポインター。 バッファーは、 cchBuf パラメーターで指定された文字数を格納するのに十分な大きさである必要があります(終端の null 文字の領域を含む)。
cchBuf
型: int
pszDst が指すバッファーに含めることができる文字数。 このパラメーターは 0 より大きくする必要があります。
戻り値
型: int
pszDst に書き込まれた文字数 (終端の null 文字を含む) を返します。 失敗した場合は 0 を返します。
注釈
セキュリティの警告: この関数を誤って使用すると、アプリケーションのセキュリティが損なわれる可能性があります。 たとえば、 pszDst バッファーが cchBuf で指定された文字数を格納するのに十分な大きさでない場合、バッファー オーバーランが発生する可能性があります。 バッファー オーバーランは、アクセス違反が発生した場合に、アプリケーションに対するサービス拒否攻撃を引き起こす可能性があります。 最悪の場合、バッファー オーバーランにより、特に pszDst がスタック ベースのバッファーである場合に、攻撃者が実行可能コードをプロセスに挿入する可能性があります。 バッファーが十分な大きさでない場合、出力文字列は自動的に切り捨てられることに注意してください。 これにより、正規化またはその他のセキュリティの脆弱性が発生する可能性があります。
pszDst バッファーが変換された出力文字列全体を格納するのに十分な大きさでない場合、バッファーに合わせて文字列が切り捨てられます。 戻り文字列が切り捨てられたことを検出する方法はありません。 文字列が切り捨てられた場合でも、文字列は常に null で終了します。 この関数は、DBCS 文字ペアの先行バイトと証跡バイトの間で切り捨てないように注意します。 その場合は、cchBuf-1 文字のみが返されます。
pszSrc バッファーと pszDst バッファーが重複している場合、関数の動作は未定義です。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 2000 Professional、Windows XP [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows 2000 Server、Windows Server 2003 [デスクトップ アプリのみ] |
| ターゲット プラットフォーム の | ウィンドウズ |
| Header | shlwapi.h |
| Library | mincore_downlevel.lib |
| DLL | Shlwapi.dll (バージョン 5.0 以降) |
こちらも参照ください
StringCchLength