создание окна

Тема в разделе "WASM.BEGINNERS", создана пользователем nmn, 8 апр 2006.

  1. nmn

    nmn New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2006
    Сообщения:
    11
    Вот такой код:
    Код (Text):
    1.  
    2. .386
    3. .model flat,stdcall
    4. option casemap:none
    5. include ..\include\windows.inc
    6. include ..\include\user32.inc
    7. include ..\include\kernel32.inc
    8.  
    9. includelib kernel32.lib
    10. includelib user32.lib
    11. ;includelib windows.lib
    12.  
    13. WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
    14. .data
    15. ClassName db "nmnwnd",0
    16. AppName db "nmnApp",0
    17. ErrMsg db "Îøèáêà âûïîëíåíèÿ ïðîãðàììû",0
    18.  
    19. .DATA?
    20. hInstance HINSTANCE ?
    21. CommandLine LPSTR ?
    22.  
    23. .CODE
    24. start:
    25.     invoke GetModuleHandle, NULL
    26.     mov hInstance,eax
    27.     invoke GetCommandLine
    28.     mov CommandLine, eax
    29.     invoke WinMain, hInstance, NULL,CommandLine, SW_SHOWDEFAULT
    30.     invoke ExitProcess, eax
    31.    
    32.     WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
    33.    
    34.         LOCAL wc:WNDCLASSEX
    35.         LOCAL msg:MSG
    36.         LOCAL hwnd:HWND
    37.        
    38.         mov wc.cbSize, SIZEOF WNDCLASSEX
    39.         mov wc.style, CS_HREDRAW or CS_VREDRAW
    40.         mov wc.lpfnWndProc, offset WndProc
    41.         mov wc.cbClsExtra,NULL
    42.         mov wc.cbWndExtra,NULL
    43.         push hInstance
    44.         pop wc.hInstance
    45.         mov wc.hbrBackground,COLOR_WINDOW+1
    46.         mov wc.lpszMenuName,NULL
    47.         mov wc.lpszClassName,offset ClassName
    48.         invoke LoadIcon, NULL,IDI_APPLICATION
    49.         mov wc.hIcon,eax
    50.         mov wc.hIconSm,eax
    51.         invoke LoadCursor, NULL,IDC_ARROW
    52.         mov wc.hCursor,eax
    53.        
    54.         invoke RegisterClassEx, addr wc    
    55.         invoke CreateWindowEx, NULL,\
    56.                                         addr ClassName,\
    57.                                         addr AppName,\
    58.                                         WS_OVERLAPPEDWINDOW,\
    59.                                         CW_USEDEFAULT,\;x
    60.                                         CW_USEDEFAULT,\;y
    61.                                         CW_USEDEFAULT,\;width
    62.                                         CW_USEDEFAULT,\;height
    63.                                         NULL,\
    64.                                         NULL,\
    65.                                         hInst,\
    66.                                         NULL       
    67.         .if(eax)
    68.             mov hwnd,eax
    69.             invoke ShowWindow, hwnd, SW_SHOW
    70.             invoke UpdateWindow, hwnd
    71.             .WHILE TRUE
    72.                 invoke GetMessage, addr msg, NULL,0,0
    73.                 .BREAK .IF(!eax)
    74.                 invoke TranslateMessage, addr msg
    75.                 invoke DispatchMessage, addr msg
    76.             .ENDW
    77.         .else
    78.             invoke MessageBox, NULL, addr ErrMsg, addr AppName, MB_OK
    79.             ret
    80.         .endif
    81.         mov eax,msg.wParam
    82.         ret
    83.     WinMain endp
    84.    
    85.     WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
    86.         .if (uMsg==WM_DESTROY)
    87.             invoke PostQuitMessage, NULL
    88.         .else
    89.             invoke DefWindowProc, hWnd,uMsg,lParam,wParam
    90.             ret
    91.         .endif
    92.         xor eax,eax
    93.         ret
    94.     WndProc endp
    95.    
    96. end start
    97.  


    Почему-то не создается окно. Объясните почему пожалуйста.
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine


    Параметры lParam и wParam поменяйте местами ;)
     
  3. nmn

    nmn New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2006
    Сообщения:
    11
    спасибо