首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

“AddressOf”出错,请大家帮小弟我修正

2012-02-13 
“AddressOf”出错,请大家帮我修正提示:“AddressOf”表达式不能转换为“Long”,因为“Long”不是委托类型。(改为 I

“AddressOf”出错,请大家帮我修正
提示:“AddressOf”表达式不能转换为“Long”,因为“Long”不是委托类型。(改为 Integer 亦无用处)
本人使用2005不久,请大家帮助我修改它,使其可以在VB2005中正常编译。

VB.NET code
    Public Function SetWndProc(ByVal hwnd As Long, ByVal NewWndProc As Boolean) As Long        If NewWndProc Then            prevWndProc = GetWindowLong(hwnd, GWL_WNDPROC)            SetWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WndProc)        Else            SetWndProc = SetWindowLong(hwnd, GWL_WNDPROC, prevWndProc)        End If    End Function    Private Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long        If Msg = WM_HOTKEY Then            Select Case wParam                Case 2222                    SetWindowPos(GetForegroundWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)                Case 2223                    SetWindowPos(GetForegroundWindow, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)                Case 2224                    Form1.Close()            End Select            Exit Function        End If        WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)    End Function


[解决办法]
申明一致就可以了,没什么难的
[解决办法]
得看你SetWindowLong是怎么声明的了。

windows API 中SetWindowLong第三个参数是是Long
LONG WINAPI SetWindowLong(
__in HWND hWnd,
__in int nIndex,
__in LONG dwNewLong
);

感觉应该不是函数的地址。

热点排行