小甲鱼 发表于 2014-7-19 22:52:47

StringCchCopy

函数功能:

StringCchCopy 函数的功能是复制一个字符串到缓冲区。StringCchCopy 函数要求提供目标缓冲区的长度,以确保写入数据不会超出缓冲区的末尾。

微软推荐使用该函数替代以下函数:


[*]strcpy, wcscpy, _tcscpy
[*]lstrcpy
[*]StrCpy


API 函数原型:

HRESULT StringCchCopy(
_Out_LPTSTR pszDest,
_In_   size_t cchDest,
_In_   LPCTSTR pszSrc
);

参数解析:


参数 含义
pszDest 缓冲区,用于接收拷贝过来的字符串
cchDest 1. 目标缓冲区的大小(字符个数)
2. 该值必须大于或等于 pszSrc + 1(待拷贝字符串的字符+'\0')
3. 这个数不能超过 STRSAFE_MAX_CCH
pszSrc 待拷贝的字符串


返回值:

这个函数返回一个 HRESULT,而不是指向缓冲区的指针。我们强烈建议您使用 SUCCEEDED 和 FAILED 宏来测试这个函数的返回值。

返回值可以是以下任意一个值:


返回代码 描述
S_OK 字符串正常拷贝
STRSAFE_E_INVALID_PARAMETER 1. cchDest 参数的值为 0
2. cchDest 参数的值大于 STRSAFE_MAX_CCH
STRSAFE_E_INSUFFICIENT_BUFFER 1. 因缓冲区空间不足导致失败
2. 结果被截断,当仍然包含'\0'结尾
3. 如果截断操作可以被接受,则不一定被看作是失败


【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。

WinSDK

redcooper 发表于 2015-1-27 11:08:44

没人占楼

谦虚求学 发表于 2016-10-25 22:15:04

{:5_91:}

BngThea 发表于 2017-7-10 14:10:54

路过学习

xusiman 发表于 2017-12-12 11:14:14

{:10_281:}专业啊

李先森啊 发表于 2020-6-2 15:25:45

搞个例子会更清晰点,更加利于理解
页: [1]
查看完整版本: StringCchCopy