如题,谢谢!

解决方案 »

  1.   

    Option Explicit
    Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As LongPrivate Sub Form_Load()
        Show
        Print lstrlen("a工")
    End Sub
      

  2.   

    LenB(StrConv(string, vbFromUnicode))
      

  3.   

    我对以上两个方法做了一下测试发觉有以下问题:
    lenb默认,字符都是用双字节存储(不管是英文数字还是中文)
    而lstrlen会区分中英文,中文是双字节,英文和数字是单字节那么实际存储,字节得长度到底是哪一个呢?
              
      

  4.   

    来晚了,不过还要说!!!呵呵
    lenb(string)
      

  5.   

    哦,可不可以这样理解
    因为windows是使用ascii编码的操作系统
    所以字符在windows中保存使用ascii编码
    中文就以两个ascii码组合的码来代替所以,在windows系统中,计算字符串字节长度是使用lstrlen
    至于如果是别的使用unicode编码的操作系统,字符串的字节长度就应该是类似lenb的函数了
      

  6.   

    楼上的说对了,要用strconsv()转换unicode为ascii,再用lenb就对了呀,vb用的就是unicode编码的。
      

  7.   

    to hongbo163(努力提高VB技术):
    windows自98后 所有的操作系统内核所用字符串均是UNICODE编码的
    连WINCE一开始就已经用了UNICODE编码了~~~~
      

  8.   

    那楼主问题的正确答案是???既然是unicode系统,那么这个系统下字符所占用的byte是?