在C++中,可以在调用一个函数时,函数的一个参数可以是一个指针(内存地址)传递过去,然后完成调用后,这个指针所针的变量就被赋值,即是输出参数,请问在VB里怎么实现?

解决方案 »

  1.   

    VB实现参数输出主要有2种方法:
    1、使用ByRef参数传递方式就是常用的一种,它适用于VB函数之间的数据传递,安全可靠。
    例子如下:
    Sub Test(ByRef param As Integer)
    Param=2
    End Sub
    Sub CallTest()
    dim i As IntegerCall Test(i)End Sub
    2、另外一种使用使用指针的方法,它适用于VB与C之间的参数传递
    Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)Sub Test(Byval ptr As Long)
    dim i As Integer
    i=2
    CopyMemory Byval ptr, Byval VarPtr(i),2&End SubSub CallTest()
    dim i As IntegerCall Test(VarPtr(i))
    End Sub至于数组和对象的参数传递,传递的都是指针。
      

  2.   

    我有一组DLL,是由VC++写的,里面用有些函数需要用到上述方法,但它传递的是一个结构体的指针,也就是VB里的Type,那么这种情况能不能用CopyMemory来做呢?
      

  3.   

    任何情况下都能使用CopyMemory这个万能武器。