部分 说明
number 必要参数;Long。返回的字符串长度。如果 number 包含 Null,将返回 Null。
characte 必要参数;Variant。为指定字符的字符码或字符串表达式,其第一个字符将用于建立返回的字符串。如果 character 包含 Null,就会返回 Null。
------------------------------------------------------------------------
Dim MyString
' 返回 10 个空格的字符串。
MyString = Space(10)
' 将 10 个空格插入两个字符串中间。
MyString = "Hello" & Space(10) & "World"
------------------------------------------------------------------------
Dim i As Long
Dim x() As Byte
x = StrConv("ABCDEFG", vbFromUnicode) ' 转换字符串。
For i = 0 To UBound(x)
Debug.Print x(i)
Next
Declare Sub MyUnicodeCall Lib "MyUnicodeDll.dll"(pstr as Byte)
Sub Makecall(Mystr as String)
Dim bImp() as Byte
bImp=Mystr & vbNullchar
MyUnicodeCall bImp(0)
MyStr=bImp
MyStr=left(Mystr, Len(Mystr)-1)
End sub
如果使用 StrPtr,上面的代码精简为
Declare Sub MyUnicodeCall Lib"MyUnicodeDll.dll"(pstr as Byte)
Sub Make call(Mystr as String)
MyUnicodeCall StrPtr(MyStr)
End sub
------------------------------------------------------------------------
VarPtr/ Strptr/ ObjEt的执行速度非常非常快,因此调用UNICODE函数所赞成有系统负担实际上小于调用相
对应的ANSI函数。因为前者不需进行转换
VarPtr还能用于优化 ANSI API函数的调用。在调用时使用 StrConv和 Strptr就能避免将—个字符串变量多资传
递给函数以及为每个调用而执行转换操作所造成的系统负担。例如原来的
Function UnsingedAdd By Val Start As Long ByVal Incr As Long)As Long
Const SignBit As Long=&H80000000
UnsignedAdd=(Start Xor SignBit)+ Incr Xor SignBit
End function