CString为const char * _Source in function strcpy_s

时间:2015-09-15 15:12:12

标签: visual-c++

我有代码:

char buff[50000];
CString params = "sss" ;
strcpy_s(buff,params);

为什么strcpy_s接受CString的第二个参数?根据我的理解,第二个参数应该是const char * _Source

类型

1 个答案:

答案 0 :(得分:0)

CString有一个LPCTSTR conversion operator。编译器调用此方法将您的CString转换为所需的const char *。那么编译器的作用是:

strcpy_s(buff, (const char*)params);

相当于

strcpy_s(buff, (LPCTSTR)params);

就像

strcpy_s(buff, params.operator LPCTSTR());

仅当您不编译Unicode时才有效。在Unicode LPCTSTR上不是const char *而是const WCHAR *,所以这不起作用。