大家知道,凡是涉及到字符串处理的API函数都有A和W两个版本,比如DrawTextA和DrawTextW,我知道A代表ANSI,W代表Unicode。请问它们到底有什么区别呢?使用DrawTextA同样可以输出汉字啊。那么在具体应用中A和W两者用哪个最好呢?

解决方案 »

  1.   

    DrawTextW (Unicode) and DrawTextA (ANSI)
    参数不同简单来说
    unicode   是用两个字节表示所有的字符,包括字母,
    ansi   是用1个字节表示字母,两个字节表示汉字等文字要看具体的可以搜索一下
      

  2.   

    你要输出的字符串变量是ANSI还是UNICODE编码,决定你用哪一个函数,不然输出是乱码!
    VB的string内部虽然是UNICODE编码,但是,VB在输出时,都给转换成ANSI了,所以,VB一般用ANSI版的API就可以了。
      

  3.   

    个人比较喜欢DrawTextW
    这样应该可以省去vb自动的UNICODE到ANSI的转换
    而且我记得以前做过速度测试DrawTextW好像快一些,太久了,不记得了
      

  4.   

    DrawTextW (Unicode) and DrawTextA (ANSI)
    一般只有 windows2000 NT 才会用 Unicode的吧
      

  5.   

    怪不得我从vbaccelerator下的一个示例中针对NT系统调用的是W系API而9X系统则是A系呢,原来如此,这下明白了,多谢多谢!另外我还搜到一篇《如何使用Unicode版和Ansi版API》的好文章:http://blog.csdn.net/slowgrace/archive/2009/04/24/4105426.aspx
      

  6.   

    同意!也可以手工转换:http://blog.csdn.net/chenjl1031/archive/2010/12/07/6059767.aspx
      

  7.   

    同意!也可以手工转换:http://blog.csdn.net/chenjl1031/archive/2010/12/07/6059767.aspx
      

  8.   

    http://topic.csdn.net/u/20090901/09/dddf35aa-7838-4415-85b2-222358422d81.html
      

  9.   

    更可喜的是西西同学(楼主)很负责,还整理成博客文章了,注意0楼的小结最后是有链接的。
    CSDN 的美工一直很业余,链接不给下划线,淹没在蓝色中了。