一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

wcscpy()即为strcpy()的宽字符版本(Unicode),与_T类似的,Visual C++提供了类似的同名函数:

#ifdef UNICODE 
#define _tcscpy wcscpy 
#else 
#define _tcscpy strcpy 
#endif

wcscpy_s的作用和前面一样,不过是MS搞出来的带有安全机制的,更安全的版本。。。
为什么有时候在调用wcscpy的时候会出现不安全现象呢?
是因为有可能由于程序员的不正确使用,导致缓冲区的泄露,或者造成内存数据读取错误等现象,
所以推荐使用unicode版的_s的函数版本wcscpy_s(*dest,wcslen(src),*src);
这样读取的数据就能保证数据的正确性

wcscpy_s的函数原型为:

error_t wcscpy_s(wchar_t *strDestination,size_t numberOfCharacters,const wchar_t *strSource);  

其中strDestination为指向将要复制字符串的目的缓冲区的地址,numberOfCharacters为缓冲区大小(以字符计),strSource为指向源字符串的指针

下面是一个例子:

1 PCWSTR string = TEXT("mydef");
2 WCHAR buff[6];
3 wcscpy_s(buff, _countof(buff), string);

其中TEXT是一个宏,该宏能够自动判断当前字符集环境(Unicode还是ANSI还是其他的)并进行适当的转换。

与其类似的还有以下函数:

error_t wcscat_s(wchar_t *strDestination,size_t numberOfCharacters,const wchar_t *strSource)

 

posted on   一杯清酒邀明月  阅读(1163)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2021-09-15 Qt QGraphicsview缩放及还原
2021-09-15 Qt 拷贝内容到粘贴板 || 获取粘贴板内容
2020-09-15 LIBJPEG 安装编译,读取jpeg图像数据
2020-09-15 LIBTIFF 图像读取与保存
2020-09-15 LIBTIFF库在windows下的编译(32位与64位)
2020-09-15 判断dll是32位还是64位的简单方法(实测有效)
2020-09-15 使用VS工具查看dll是32位还是64位
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示