鱼C论坛

 找回密码
 立即注册
查看: 1472|回复: 3

看段代码刚学win32第一个窗口程序编译错误提示 指令必须在控制块

[复制链接]
发表于 2013-8-4 20:47:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
                .386
                .model flat,stdcall
                option casemap:none
;include 文件定义-------------------------------------
include                windows.inc
include                gdi32.inc
includelib        gdi32.lib
include                user32.inc
includelib        user32.lib
include                kernel32.inc
includelib        kernel32.lib
;-----------------------------------------------------
;数据段-----------------------------------------------
                .data?
hInstance        dd        ?
hWinMain        dd        ?


                .const
szClassName        db        'MyClass',0
szCaptionMain        db        'MyFirstWindow!',0
szText                db        'Win32 powerful!',0

;代码段---------------------------------------------
                .code

_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

_WinMain        proc
                local        @stWndClass:WNDCLASSEX
                local        @stMsg:MSG

                invoke        GetModuleHandle,NULL
                mov        hInstance,eax
                invoke        RtlZeroMemory,addr @stWndClass,sizeof @stWndClass

;注册窗口类

                invoke        LoadCursor,0,IDC_ARROW
                mov        @stWndClass.hCursor,eax
                push        hInstance
                pop        @stWndClass.hInstance
                mov        @stWndClass.cbSize,sizeof WNDCLASSEX
                mov        @stWndClass.style,CS_HREDRAW or CS_VREDRAW
                mov        @stWndClass.lpfnWndProc,offset _ProcWinMain
                mov        @stWndClass.hbrBackground,COLOR_WINDOW + 1
                mov        @stWndClass.lpszClassName,offset szClassName
                invoke        RegisterClassEx,addr @stWndClass

;建立并显示窗口类

                invoke CreateWindowEx,WS_EX_CLIENTEDGE,\
                offset szClassName,offset szCaptionMain,\
                WS_OVERLAPPEDWINDOW,\
                100,100,600,400,\
                NULL,NULL,hInstance,NULL
                mov        hWinMain,eax
                invoke        ShowWindow,hWinMain,SW_SHOWNORMAL
                invoke        UpdateWindow,hWinMain


;消息循环
                .while        TRUE
                        invoke        GetMessage,addr @stMsg,NULL,0,0
                        .break       
                        .if eax == 0
                        invoke        TranslateMessage,addr @stMsg
                        invoke        DispatchMessage,addr @stMsg
               
                .endw
                ret

_WinMain        endp

start:
                call        _WinMain
                invoke        ExitProcess,NULL

                end        start


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-5 14:30:49 | 显示全部楼层
看的好乱啊 ,你如果发布出来程序,还可以调试下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-5 19:59:16 | 显示全部楼层
楼主这是那个意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-7 10:58:30 | 显示全部楼层
想问的是什么问题呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-29 05:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表