我有代码:
char buff[50000];
CString params = "sss" ;
strcpy_s(buff,params);
为什么strcpy_s
接受CString
的第二个参数?根据我的理解,第二个参数应该是const char * _Source
答案 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 *
,所以这不起作用。