我想得到一个函数的地址,所以用了 addressof 运算符.
但是运行的时候,弹出窗口:
"compile error: Invalid use of AddressOf operator"求教,谢谢!

解决方案 »

  1.   

    Private Declare Function func Lib "udp_op.dll" _
                                ByVal lpCallbackfunc As Long) As Long'Callback function
    Public Function Callbackfunc(ByVal param As Long) As Long
    Callbackfunc = 1
    End FunctionPrivate Sub Command1_Click()
       Call func(AddressOf Callbackfunc)
    End Sub
      

  2.   

    DLL中的一个函数需要传入一个函数指针作为回调.
    所以我想要把 Callbackfunc 这个函数的地址传入到DLL提供的这个函数中.结果按下Command1之后,就出现了"Invalid use of AddressOf operator"这个错误.
      

  3.   

    把下面这段代码放在模块中:'Callback function
    Public Function Callbackfunc(ByVal param As Long) As Long
    Callbackfunc = 1
    End Function
      

  4.   

    多谢Modest.但是我还是有不懂的地方.VB的模块是什么东西?如何把代码放到模块中?
      

  5.   

    模块就是模块啦,在VB中窗体有自己的界面和代码,而模块中只有一些代码,如果你要让一些变量、过程在每个窗体中都可用,就把它们放在一个模块中并用Public来定义。像回调函数就是必须放在模块中的。
    你点菜单“工程-添加模块”新建一个模块,然后把代码添加到这里面,保存工程的时候把这个模块保存为一个扩展名是bas的文件就OK了。
      

  6.   

    模块就像C/C++的一个".C/.CPP"文件,里面除了定义类以外,可以定义变量和函数,声明成Public的话,可以被整个工程共享.