+ -
当前位置:首页 → 问答吧 → 高手指教错误在哪里

高手指教错误在哪里

时间:2011-02-07

来源:互联网

我刚学汇编,依葫芦画瓢写了一段win32汇编代码,是一个处理窗口消息的过程,用MASM编译时,倒数第6行出现语法错误error A2008:syntex error:invoke,又查了一下DefWindowProc的用法,始终找不到错在哪里。请高手指点一下,谢谢。
_ProcWinMain proc uses ebx edi esi,hWnd,uMsg,wParam,lParam
  local @stPs:PAINTSTRUCT
  local @stRect:RECT
  local @hDc

  mov eax,uMsg
  .if eax==WM_PAINT
  invoke BeginPaint,hWnd,addr @stPs
  mov @hDc,eax

  invoke GetClientRect,hWnd,addr @stRect
  invoke DrawText,@hDc,addr szText,-1,addr @stRect,DT_SINGLELINE or DT_CENTER or DT_VCENTER
  invoke EndPaint,hWnd,addr @stPs
  .elseif eax==WM_CLOSE
  invoke DestroyWindow,hWinMain
  invoke PostQuitMessage,NULL  
  .else invoke DefWindowProc,hWnd,uMsg,wParam,lParam  
  ret
  .endif
  xor eax,eax
  ret
_ProcWinMain endp

作者: everest_cn   发布时间: 2011-02-07

刚学汇编就直接WIN32了? 膜拜高手

作者: znxllyuan   发布时间: 2011-02-07

补充:在主窗口类注册时,把这个过程作为窗口的消息处理过程,但始终没有对wParam,lParam两个参数初始化,也就是说在系统调用DefWindowProc时,参数wParam和lParam并未被定义,上面的这个问题也许就应该转变为DefWindowProc被调用时,参数wParam和lParam应该如何取值的问题,请指教。

作者: everest_cn   发布时间: 2011-02-07