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

 

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

比如_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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章