如DownLoad(BSTR filename);
客户端代码:WCHAR *wcTemp = new WCHAR[40];
ZeroMemory(wcTemp, 40);
mbstowcs(wcTemp, "飞秋FeiQ.exe", strlen("飞秋FeiQ.exe"));zwj->DownLoad(wcTemp);
如果wcTemp为纯英文,下载正确,如果wcTemp中有汉字,下载失败,我在
com服务端设断点看了,果然是“飞秋FeiQ.exe”成了“乱码+FeiQ.exe”,
说明英文部分正常。
com服务端我是这样转换的
DownLoad(BSTR filename)
{
...
CString strRemoteFileName = filename;
//然后就发现strRemoteFileName 是"·é??FeiQ.exe"
}
高手们,怎么办?
客户端代码:WCHAR *wcTemp = new WCHAR[40];
ZeroMemory(wcTemp, 40);
mbstowcs(wcTemp, "飞秋FeiQ.exe", strlen("飞秋FeiQ.exe"));zwj->DownLoad(wcTemp);
如果wcTemp为纯英文,下载正确,如果wcTemp中有汉字,下载失败,我在
com服务端设断点看了,果然是“飞秋FeiQ.exe”成了“乱码+FeiQ.exe”,
说明英文部分正常。
com服务端我是这样转换的
DownLoad(BSTR filename)
{
...
CString strRemoteFileName = filename;
//然后就发现strRemoteFileName 是"·é??FeiQ.exe"
}
高手们,怎么办?
中的strlen改成:
_mbslen或_mbstrlen试试
char* chr = "汉字Character"
CString str = chr;//正确WCHAR* wchr = "汉字Character"
CString str = wchr;//有问题