Visual Basic 深度下潜之海蛇缠绕
http://tech.ddvip.com 2006年07月29日 社区交流
本文详细介绍Visual Basic 深度下潜之海蛇缠绕
“海蛇”有人在惊呼。
只见在海底深处游来一条黑色的长长的海蛇,几乎所有的人都在发呆。但是海蛇说了一句让我们胆寒的话“我就是有名的VB字符串,如果你们继续下潜的话,就得想通过我”。
我习惯性的观察着它,因为我知道要打败一个对手,就必须深入的了解对手。
因此我写了一段小CODE来了解它。
Dim str As String
str = "Give me a 美女"
Dim L1 As Long
Dim L2 As Long
L1 = Len(str)
L2 = LenB(str)
Debug.Print L1, L2
这个代码运行得很好,完全符合我的想像,在立即窗口中显示了12,24,
Good,于是我准备在窗口中用TextOut把它打印出来,至于为什么我一定要这个函数而不用其它的,你管得着么?所以我写下了于下代码
Dim str As String
str = "Give me a 美女"
Dim L1 As Long
Dim L2 As Long
L1 = Len(str)
L2 = LenB(str)
Debug.Print L1, L2
TextOut Me.hDC, 100, 100, str, L1
结果我发现不对?看来是字符串长度不对,想起来了,在VB中字符串是BSTR型的,那么应该用L2作长度,对不对呢,试试就知道了。
天呀,在字符串后出现了天书,难道是上帝在暗示我什么时候给我一个美女?
不过我想上帝没有这么快就会答应我,因此一定是我的代码有问题。
当我正在沉思的时候,所有的人都在观注着我。没办法,太帅了。
所以我又迅速写下了以下的代码
Private Declare Function LenANSI Lib "kernel32" Alias "lstrlenA" (ByVal string1 As String) As Long
……
Dim str As String
str = "Give me a 美女"
Dim TrueLen As Long
TrueLen = LenANSI(str)
TextOut Me.hDC, 100, 100, str, TrueLen
作者:BlueDog 责编:豆豆技术应用