我想写一个函数a,此函数的其中的一个参数是其它函数(b,c,d等)的函数指针,我的意思是我打算使用AddressOf运算符。
当别人使用语句:a AddressOf b时,函数a会执行b,使用a AddressOf c时,函数a会执行c,这样我无需用CASE语句来做判断a应该执行什么。
请问哪位高手知道怎么实现,并能给我一个例子?
多谢!

解决方案 »

  1.   

    或者你用Microsoft Scripting Control试试,不用传指针
      

  2.   

    CallWndProc不知道可不可以其实可以用CallByName()函数
      

  3.   

    Sub A(strProcedure As String)
    CallByName 模块名, strProcedure, VbMethod, Nothing
    End Sub调用的时候a "b",就是执行b
      

  4.   

    不知道你的真正目的是什么,是不是将一个过程作为参数传入?如果是的话,就不要用AddressOf操作符了,就用CallByName函数好了。你找找MSDN里面关于CallByName函数的帮助吧
      

  5.   

    是要将一个过程做为参数传入。使用CallByName函数,必须使函数位于类中,要是调用位于模块中的函数怎么办?
      

  6.   

    用CALLBYNAME可以实现:你把这个函数写在模块中就可以了.
      

  7.   

    function A(strProcedure As String)
    CallByName 模块名, strProcedure, VbMethod, Nothing
    End function
      

  8.   

    http://expert.csdn.net/Expert/topic/2952/2952906.xml?temp=.9125177
      

  9.   

    //是要将一个过程做为参数传入。使用CallByName函数,必须使函数位于类中,要是调用位于模块中的函数怎么办?类和模块都一样,只要把模块或者类名作为第一个参数以字符串类型传入就可以了。
    类名大家都很关心,但模块名往往被人忽略(因为可以缺省调用)。