VC++ LPWSTR类型的实参与char*类型的形参不兼容

2025-01-05 02:32:28
推荐回答(1个)
回答1:

在UNICODE字符集下,CString存储方式是WCHAR宽字节。
如果你的加密算法始终要求char模式,那么放弃使用CString直接使用char* 就可以了。
如果无法避免宽字节字符串,那么安全的办法是通过WideCharToMultiByte函数,将UNICODE字符串转换为宽字节的char*在进行DES加密。
变通的办法(存在字符串转换的隐患)是直接将WCHAR通过内存复制方式给char*进行加密,复制长度为:ytr.GetLength()*sizeof(TCHAR)