_tgetenv(),_tcscat() ,setmode(),_tsplitpath()等函数的 was declared deprecated 警告

来源:互联网 发布:网络研修社区 编辑:程序博客网 时间:2024/05/05 22:49

 

这些函数因为不是十分安全的,对于内存不够的时候处理并不完善,所以建议使用 更为安全的函数版本

比如_tgetenv_s();_tcscat_s(),_tsplitpath_s()等

 

_tgetenv_s()函数声明:

_tgetenv_s()用法如下:

 

 

 

_setmode() ,如_setmode(_fileno(stdout),_O_BINARY);需要的头文件为

 #include  <io.h>//_setmode()需要

  #include <fcntl.h>//_O_BINARY 需要

用法:

 

 

对于 _tcscat_s() MSDN上如下声明:

 

 

自己的例子:

 

 

 

_tsplitpath_s() 声明如下:

 

自己的例子

 

从上面的例子可以看出,对于这些函数,若是指针传递,则比原先不安全的版本多一个大小限制,而对于已经申请好的字符串引用传递,则可以和以前一样用(仅限C++,C里面没有引用),基本若是成功,则返回值为0,有误为其他返回值。

 

更详细的见MSDN

 

 

原创粉丝点击