strcpy怎样才会没有警告

ltaotao007_2005 2008-07-07 10:40:31
char a[100]
CString str="123213214fdsafasdf";

strcpy((LPSTR)a,(LPSTR)(LPCTSTR)m_str);

这样虽可编译,但有警告,很不爽
Message: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
...全文
258 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xkyx_cn 2008-07-07
  • 打赏
  • 举报
回复
如它所推荐:
#define _CRT_SECURE_NO_DEPRECATE
ltaotao007_2005 2008-07-07
  • 打赏
  • 举报
回复
strcpy( a, str );
我这样用,根本编译不过的
缘来是梦 2008-07-07
  • 打赏
  • 举报
回复
因为strcpy(a,b)不检查a是不是有足够的空间来容纳a,如果a没有足够的空间的话,会发生运行时错误.微软认为这是不安全的,他们不推荐这种用法,所以会发出警告.如果你能够确保a有足够的空间的话,可以不理会这个警告!!
nevergone 2008-07-07
  • 打赏
  • 举报
回复
#pragma warning(disable : 4996)
Zhang_ZP 2008-07-07
  • 打赏
  • 举报
回复
现在只要用strcpy都会有警告,用strcpy_s就没。不过,我从来不管这些警告的。
na_he 2008-07-07
  • 打赏
  • 举报
回复
strcpy(a.str)直接用也是可以的亚,呵呵,为什么要转换呢
xxfyath 2008-07-07
  • 打赏
  • 举报
回复
CString str="123213214fdsafasdf";
char * p = str.GetBuffer(str.GetLength()) ;
strcpy(a,p);
str.ReleaseBuffer();
Crob 2008-07-07
  • 打赏
  • 举报
回复
最好的办法就是不用char*不用CString,而用标准库的string,又快又好用还没有微软的那堆warning
aat_ydt 2008-07-07
  • 打赏
  • 举报
回复
如果是我,我会直接

strcpy( a, str );

不懂你为什么那样做。
ouyh12345 2008-07-07
  • 打赏
  • 举报
回复
忽略此警告
mycool2001 2008-07-07
  • 打赏
  • 举报
回复
strcpy_s((LPSTR)a,100,(LPSTR)(LPCTSTR)m_str);

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧