我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 一个转宽字符的函数,不知道什么问题?求助大侠们了。。。 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

gaysbian





性别: 美女 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 990
威望: 0
浮云: 1138
在线等级:
注册时间: 2007-09-05
最后登陆: 2009-08-17

5come5帮你背单词 [ congress /'koŋgres/ n. (代表)大会,国会,议会 ]


一个转宽字符的函数,不知道什么问题?求助大侠们了。。。

外网的一个UCS32编码宽字符函数EncodeUcs2(const char *pSrc, unsigned char *pDst, int nSrcLength)
{
  int nDstLength;        // UNICODE宽字符数目
    WCHAR wchar[128];    // UNICODE串缓冲区

    // 字符串-->UNICODE串
    nDstLength = MultiByteToWideChar(CP_ACP, 0, pSrc, nSrcLength, wchar, 128);

    // 高低字节对调,输出
    for(int i=0; i<nDstLength; i++)
    {
        *pDst++ = wchar >> 8;        // 先输出高位字节
        *pDst++ = wchar & 0xff;        // 后输出低位字节
    }

   
    return nDstLength * 2;
}
觉得函数写的很正确,但是调试运行后,进行测试,发现并没有实现把字符串转换成UNICODE宽字符的功能。
例如,假设个字符串  char a[3]="ab";
调用函数encodeucs2(a,pdst,.........)后,跟踪调试,发现pdst里面为空,麻烦哪位大侠帮忙看看,是什么问题??
顶端 Posted: 2008-04-19 16:44 | [楼 主]
枫叶刀





性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1393
威望: 0
浮云: 1282
在线等级:
注册时间: 2006-03-23
最后登陆: 2009-08-14

5come5帮你背单词 [ frown /fraun/ vi. & n. 皱眉,蹙额(表示不满) ]


Quote:
for(int i=0; i<nDstLength; i++)
    {
        *pDst++ = wchar >> 8;        // 先输出高位字节
        *pDst++ = wchar & 0xff;        // 后输出低位字节
    }

错了,wchar 是地址,对地址wchar >> 8错了
Quote:

应该是
for(int i=0; i<nDstLength; i++)
    {
        *pDst++ = wchar [i]>> 8;        // 先输出高位字节
        *pDst++ = wchar[i]& 0xff;        // 后输出低位字节
    }
顶端 Posted: 2008-04-20 13:18 | [1 楼]
枫叶刀





性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1393
威望: 0
浮云: 1282
在线等级:
注册时间: 2006-03-23
最后登陆: 2009-08-14

5come5帮你背单词 [ oven /'Λvn/ n. 烤箱,炉灶 ]


晕了原来是[]输不出来
顶端 Posted: 2008-04-20 13:25 | [2 楼]
gaysbian





性别: 美女 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 990
威望: 0
浮云: 1138
在线等级:
注册时间: 2007-09-05
最后登陆: 2009-08-17

5come5帮你背单词 [ survey /sə:'vei/ vt. 纵览,环视,调查,检查,测量,勘定;n. 调查,研究,概说,概观,测量 ]


Quote:
引用第2楼枫叶刀于2008-04-20 13:25发表的  :
晕了原来是[]输不出来

哦,这个是我忘输了,关键不是这个问题哈
顶端 Posted: 2008-04-20 20:37 | [3 楼]
yy1213



性别: 美女 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 511
威望: 0
浮云: 1149
在线等级:
注册时间: 2005-12-28
最后登陆: 2008-06-29

5come5帮你背单词 [ stalk /sto:k/ n. 茎,干;v. 昂首阔步地步 ]


测试过没错输入
    char a[3]="ab";
    unsigned char * pdst;
    pdst=(unsigned char *)malloc(256);
    EncodeUcs2(a,pdst,3);
返回pdst=0x00374BA8
查看内存为:00374BA8  00 61 00 62 00 00
完全正确!
顶端 Posted: 2008-04-21 13:12 | [4 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.053934(s) query 5, Time now is:11-23 18:22, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号