现在的位置: 首页 > 综合 > 正文

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

2013年06月27日 ⁄ 综合 ⁄ 共 1072字 ⁄ 字号 评论关闭

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

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

 

_tgetenv_s()函数声明:

  1. errno_t getenv_s(   
  2.    size_t *pReturnValue,  
  3.    char* buffer,  
  4.    size_t numberOfElements,  
  5.    const char *varname   
  6. );  
  7. errno_t _wgetenv_s(   
  8.    size_t *pReturnValue,  
  9.    wchar_t *buffer,  
  10.    size_t numberOfElements,  
  11.    const wchar_t *varname   
  12. );  
  13. template <size_t size>  
  14. errno_t getenv_s(   
  15.    size_t *pReturnValue,  
  16.    char (&buffer)[size],  
  17.    const char *varname   
  18. ); // C++ only  
  19. template <size_t size>  
  20. errno_t _wgetenv_s(   
  21.    size_t *pReturnValue,  
  22.    wchar_t (&buffer)[size],  
  23.    const wchar_t *varname   
  24. ); // C++ only  

_tgetenv_s()用法如下:

 

 

  1. TCHAR *querystringvar;  
  2.     size_t requiredsize;  
  3.   
  4.     _tgetenv_s(&requiredsize,NULL,0,_T("QUERY_STRING"));  
  5.   
  6.     querystringvar = (TCHAR *)malloc(requiredsize * sizeof(TCHAR));  
  7.     if(!querystringvar)  
  8.     {  
  9.         fprintf(stdout, "Content-Type:text/html;charset=gbk;");  
  10.         fprintf(stdout, "/n/n");  
  11.         printf("获取QUERY_STRING时内存分配失败!/n");  
  12.         exit(1);  

抱歉!评论已关闭.