VB:
oldproc=GetWindowLong(RichEdit.hWnd,GWL_WNDPROC)
......
a=CallWindowProc(oldproc,hWnd,Msg,wParam,lParam)
汇编:
invoke GetWindowLong,hWnd,GWL_WNDPROC
mov oldproc,eax
......
invoke CallWindowProc,oldproc,hWnd,uMsg,wParam,lParam
因为Delphi中GetWindowLong返回值为Integer,而CallWindowProc的第一个参数
要求是Pointer。经过测试,强制类型转换不能通过!
oldproc=GetWindowLong(RichEdit.hWnd,GWL_WNDPROC)
......
a=CallWindowProc(oldproc,hWnd,Msg,wParam,lParam)
汇编:
invoke GetWindowLong,hWnd,GWL_WNDPROC
mov oldproc,eax
......
invoke CallWindowProc,oldproc,hWnd,uMsg,wParam,lParam
因为Delphi中GetWindowLong返回值为Integer,而CallWindowProc的第一个参数
要求是Pointer。经过测试,强制类型转换不能通过!
......
a:=CallWindowProc(@oldproc,hWnd,Msg,wParam,lParam)
但不知道这是为什么?