采用传值方式传递时实际上传递的是实参中所存放的字符串的首地址,当调用过API后,可以通过它来返回数据,API修改传送给它的那个地址所指向的字符串数据,而没有修改实参字符变量内的内容,所以可以返回数据。即并没有与高级语言中所规定的传值方式调用方式的形参改变不影响实参的规则相冲突。 实例: 模块中的代码: Option Explicit Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long 窗体中的代码: Option Explicit Private Sub Command1_Click() Dim str As String Dim str1 as String Dim length As Long length = 255 str = String(length, 0) str1=str Debug.Print VarPtr(str),” “,varptr(str1) Debug.Print StrPtr(str),” ”,strptr(str1) Debug.Print GetComputerName str, length Debug.Print str Debug.Print VarPtr(str) Debug.Print StrPtr(str), Len(str), length
|
正在阅读:API中VB字符串作参数传递的本质论API中VB字符串作参数传递的本质论
2004-04-27 10:02
出处:CSDN
责任编辑:linjixiong
键盘也能翻页,试试“← →”键