首页
社区
课程
招聘
[求助]编辑框创建的问题
发表于: 2013-3-12 09:56 2621

[求助]编辑框创建的问题

2013-3-12 09:56
2621
.586
.model flat,stdcall
option casemap:none

   include windows.inc
   include user32.inc
   include kernel32.inc
   
   includelib user32.lib
   includelib kernel32.lib

WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

.data
   ClassName db "MainWinClass",0
   AppName  db "Main Window",0
   editClass db "my fist controy",0
.data?
   hInstance HINSTANCE ?
   CommandLine LPSTR ?
   Hedit HWND ?
.code

; ---------------------------------------------------------------------------

start:
        invoke GetModuleHandle, NULL
        mov    hInstance,eax
       
        invoke GetCommandLine
        mov    CommandLine,eax
       
        invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
        invoke ExitProcess,eax

WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
        LOCAL wc:WNDCLASSEX
        LOCAL msg:MSG
        LOCAL hwnd:HWND
       
        mov   wc.cbSize,SIZEOF WNDCLASSEX
        mov   wc.style, CS_HREDRAW or CS_VREDRAW
        mov   wc.lpfnWndProc, OFFSET WndProc
        mov   wc.cbClsExtra,NULL
        mov   wc.cbWndExtra,NULL
        push  hInstance
        pop   wc.hInstance
        mov   wc.hbrBackground,COLOR_BTNFACE+1
        mov   wc.lpszMenuName,NULL
        mov   wc.lpszClassName,OFFSET ClassName
       
        invoke LoadIcon,NULL,IDI_APPLICATION
        mov   wc.hIcon,eax
        mov   wc.hIconSm,eax
       
        invoke LoadCursor,NULL,IDC_ARROW
        mov   wc.hCursor,eax
       
        invoke RegisterClassEx, addr wc
        INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
           WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
           CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,\
           hInst,NULL
        mov   hwnd,eax
       
        invoke ShowWindow, hwnd,SW_SHOWNORMAL
        invoke UpdateWindow, hwnd
       
        .WHILE TRUE
                invoke GetMessage, ADDR msg,NULL,0,0
                .BREAK .IF (!eax)
                invoke TranslateMessage, ADDR msg
                invoke DispatchMessage, ADDR msg
        .ENDW
       
        mov     eax,msg.wParam
        ret
WinMain endp

WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
       
        .IF uMsg==WM_DESTROY
                invoke PostQuitMessage,NULL
        .ELSEIF uMsg==WM_CREATE
        invoke CreateWindowEx,WS_EX_CLIENTEDGE,offset editClass,NULL,WS_VISIBLE OR WS_CHILDWINDOW OR \
        WS_HSCROLL OR WS_VSCROLL OR ES_MULTILINE OR ES_AUTOHSCROLL OR ES_AUTOVSCROLL,0,0,300,300,hWnd,NULL,hInstance,NULL
        mov Hedit,eax;
        .ELSE
                invoke DefWindowProc,hWnd,uMsg,wParam,lParam               
                ret
        .ENDIF
       
        xor eax,eax
        ret
WndProc endp

end start

REDMASM汇编的时候,我想这段代码因该没问题,但是编译运行的时候没有编辑框,这哪里有错,试问大牛
跟踪调试后发现创建后的返回句柄值为0说明没有创建成攻,这是为什么呢??????????

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//