CT2A-CA2T

注意:USES_CONVERSION宏开头

之前自己写了4个CHAR与TCHAR的编码函数,后来发现ms早就提供了类似的方法:CA2T CT2A……

但是有同事说,这两个函数不安全,有隐患,没有在意

但是真的用的时候,的确发现它们有些注意事项,简单来说,其实就是作用域的问题

Fun(CA2T(szSrc));

可以,Fun函数用转换后的TCHAR,没问题,因为没有出Fun()这个括号的作用域

tstring strDes = CA2T(szSrc);

可以,因为返回值立刻赋给了strDes,strDes有自己的存储空间,CA2T的数据作用域就在这一行,出了就不要了

TCHAR* szDes = CA2T(szSrc);

失败,这个szDes指向一个已经释放的作用域的值,下一行在用szDes就危险了,没有分配

// //