zoukankan      html  css  js  c++  java
  • VB6的函数指针传递

    Option Explicit
    
    Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    
    Public Type MySubParams
        ID As Long
        Name As String
    End Type
    
    Sub MySub1(p As MySubParams, a As Long, b As Long, c As Long)
        Debug.Print VarPtr(p)
        MsgBox "MySub1 " & p.ID & " " & p.Name
    End Sub
    
    Sub MySub2(p As MySubParams, a As Long, b As Long, c As Long)
        Debug.Print VarPtr(p)
        MsgBox "MySub2 " & p.ID & " " & p.Name
    End Sub
    
    Function CallSub(address As Long, params As Long)
        CallSub = CallWindowProc(address, params, 0&, 0&, 0&)
    End Function
    
    Sub Start()
        Dim a As Long
        Dim p As MySubParams
        p.ID = 1
        p.Name = "Test1"
        Debug.Print VarPtr(p)
        Debug.Print CallSub(AddressOf MySub1, VarPtr(p))
        p.ID = 2
        p.Name = "Test2"
        Debug.Print CallSub(AddressOf MySub2, VarPtr(p))
    End Sub
  • 相关阅读:
    oracle修改字符编码
    oracle修改约束列
    oracle非空约束
    Linux修改字符集
    修改oracle字符集合
    word问题禁止宏
    增加修改表列
    oracle增加sequence
    增加 修改oracle约束条件
    oracle用户 密码永不过期
  • 原文地址:https://www.cnblogs.com/nanfei/p/4193031.html
Copyright © 2011-2022 走看看