vb 2008 接收消息的问题。
我用vb6作了一个接收消息的程序,没问题。
把该程序转移到vs2008的时候就出现了问题:
'UPGRADE_WARNING: Add a delegate for AddressOf WindowProc
运行也出现错误, 通过查询很多资料后,勉强可以,可是有warning。
期待高人。
vb6的代码大概如下:
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 Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Function Hook(ByVal hwnd As Long) As Long
Dim pOld As Long
pOld = SetWindowLong(hwnd, GWL_WNDPROC,AddressOf WindowProc)
SetWindowLong hwnd, GWL_USERDATA, pOld
Hook = pOld
End Function
Public Sub Unhook(ByVal hwnd As Long, ByVal lpWndProc As Long)
Dim temp As Long
temp = SetWindowLong(hwnd, GWL_WNDPROC, lpWndProc)
End Sub
Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_USER + 1 Then
MsgBox "msg received" & wParam 'wParam
End If
Dim lpPrevWndProc As Long
lpPrevWndProc = GetWindowLong(hw, GWL_USERDATA)
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function
把该程序转移到vs2008的时候就出现了问题:
'UPGRADE_WARNING: Add a delegate for AddressOf WindowProc
运行也出现错误, 通过查询很多资料后,勉强可以,可是有warning。
期待高人。
vb6的代码大概如下:
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 Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Function Hook(ByVal hwnd As Long) As Long
Dim pOld As Long
pOld = SetWindowLong(hwnd, GWL_WNDPROC,AddressOf WindowProc)
SetWindowLong hwnd, GWL_USERDATA, pOld
Hook = pOld
End Function
Public Sub Unhook(ByVal hwnd As Long, ByVal lpWndProc As Long)
Dim temp As Long
temp = SetWindowLong(hwnd, GWL_WNDPROC, lpWndProc)
End Sub
Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_USER + 1 Then
MsgBox "msg received" & wParam 'wParam
End If
Dim lpPrevWndProc As Long
lpPrevWndProc = GetWindowLong(hw, GWL_USERDATA)
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function
...全文
相关推荐
vb2008聊天程序
**编程实践**:对于初学者来说,理解并实现这样一个聊天程序能够深入理解VB2008的编程语法,掌握网络编程的基本概念,以及提升解决问题的能力。
vb2008聊天,绝对可用
**调试与优化**:开发过程中,应使用VB2008的调试工具,如断点、日志记录等,来定位和解决问题。此外,还需关注性能优化,比如减少不必要的数据复制,合理设置缓冲区大小等。
VB.NET2008运用Socket 解决DDE通信
以下是一些关于如何使用VB.NET 2008和Socket进行DDE通信的关键知识点:1.
暗器大师2008
**聊天功能**:游戏内置聊天系统通常使用多线程技术,允许玩家在不影响游戏进行的情况下发送和接收消息。VB的Threading模块可以方便地实现这一功能。6.
低级鼠标钩子VS2008源码.zip
Visual Studio 2008(VS2008)是Microsoft推出的一个集成开发环境(IDE),支持C++、C#、VB.NET等多种编程语言,包括MFC(Microsoft Foundation


VB基础类
