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

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

gaysbian





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

5come5帮你背单词 [ big /big/ a. 大的,重的,重要的,重大的 ]


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

外网的一个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 | [楼 主]
yy1213



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

5come5帮你背单词 [ rise /raiz/ vi. 上升,上涨,升起,站起,起床,增强,起义;n. 增加,升高,加薪,高地,高坡 ]


测试过没错输入
    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 | [1 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.007699(s) query 6, Time now is:05-16 21:33, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号