Option Explicit
Public Declare Function SetWindowLong Lib "user32" Alias "SetwindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
                                                                   
'Public Declare Function WindowProc Lib " " (ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const GWL_WNDPROC As Long = (-4)
Private Const WM_CONTEXTMENU As Long = &H7B
Private defWndProc As Long
Public Sub Hook(hWnd As Long)
  If defWndProc = 0 Then
    defWndProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)'*** Error in here ***
  End If
End Sub
Public Sub UnHook(hWnd As Long)
  If defWndProc > 0 Then
    Call SetWindowLong(hWnd, GWL_WNDPROC, defWndProc)
    defWndProc = 0
  End If
End Sub
Public Function WindowProc(ByVal hWnd As Long, _
                           ByVal uMsg As Long, _
                           ByVal wParam As Long, _
                           ByVal lParam As Long) As Long
  Select Case uMsg
    Case WM_CONTEXTMENU
      WindowProc = 1
    Case Else
      WindowProc = CallWindowProc(defWndProc, hWnd, uMsg, wParam, lParam)
  EndSelect
End Function

解决方案 »

  1.   

    Public Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long把SetWindowLong 函数的声明换成这个即可
      

  2.   

    原因在于,你原来此函数声明中的 Alias "SetwindowLongA" ,其中的第一个w为小写,应该为大写
      

  3.   

    再补充一句,"找不到dll 入库点"这样的错误,你检查一下api函数的声明即可,仔细!
      

  4.   

    to hisofty 
    在vb 中是不分大小写的吧,user32 加不加.dll 一样的。以上两种方法我都试过了,还是不行。如果你有时间,最好调试一下。
      

  5.   

    把 "SetwindowLongA" 改为 "SetWindowLongA" 注意严格区分声明部份的大小写。
      

  6.   

    to wangsong1978() :
     我当然试过了,要不然那么小的错误我可找不到
     还有,vb是不区分大小,但SetwindowLongA是dll中的,不是vb本身的
     我调试通过,无问题
     再说了,这种错误,肯定是声明问题!