Return Values If the byte is potentially a lead byte, it returns a nonzero value.If the byte is not a lead byte, the return value is zero. To get extended error information, call GetLastError. ------------------------------------- 如果这个函数说某个字节不是双字节的第一个字节,那么一定不是。如果这个函数说是第一个字节,那么有可能是。
{
TCHAR zifutemp = 0;// if (isleadbyte(lpstrtemp[0]))
if (IsDBCSLeadByte(lpstrtemp[0]))
{
memcpy(lpzifu,lpstrtemp,2);
}
else
{
zifutemp = *lpstrtemp;
*lpzifu = (WCHAR)zifutemp;
// _tcsncpy(lpzifu,lpstrtemp,1);
}
// CharPrev(lpzifu,lpstrtemp);
lpstrtemp = CharNext(lpstrtemp);
return lpstrtemp;
}
If the byte is potentially a lead byte, it returns a nonzero value.If the byte is not a lead byte, the return value is zero. To get extended error information, call GetLastError. -------------------------------------
如果这个函数说某个字节不是双字节的第一个字节,那么一定不是。如果这个函数说是第一个字节,那么有可能是。
{
TCHAR zifutemp = 0;
// if (isleadbyte(lpstrtemp[0]))
if (IsDBCSLeadByte(lpstrtemp[0])) //判断是不是第一个字节
{
memcpy(lpzifu,lpstrtemp,2);
}
else
{
zifutemp = *lpstrtemp;
*lpzifu = (WCHAR)zifutemp;
// _tcsncpy(lpzifu,lpstrtemp,1);
}
// CharPrev(lpzifu,lpstrtemp);
lpstrtemp = CharNext(lpstrtemp);
return lpstrtemp;
}//我感觉这个函数的参数写的有问题,如果在unicode下LPTSTR也是WCHAR *,这就无法区分了。
//所以函数的正确写法应该是
char *
danzifufuzimove(WCHAR *lpzifu, char* lpstrtemp)
{
TCHAR zifutemp = 0;
// if (isleadbyte(lpstrtemp[0]))
if (IsDBCSLeadByte(lpstrtemp[0])) //判断是不是第一个字节
{
memcpy(lpzifu,lpstrtemp,2);
}
else
{
zifutemp = *lpstrtemp;
*lpzifu = (WCHAR)zifutemp;
// _tcsncpy(lpzifu,lpstrtemp,1);
}
// CharPrev(lpzifu,lpstrtemp);
lpstrtemp = CharNext(lpstrtemp);
return lpstrtemp;
}//如果lpstrtemp中存放的是0xa0, 0xb0, 0xc0, 0xd0。
//如果直接memcpy的话,lpzifu中存放的应该是0xb0a0, 0xd0c0.
既然不是unicode那么根本就不用WCAHR,都用char*就行