首页
社区
课程
招聘
[求助] Windows获取时间出现问题,求教高手
发表于: 2009-4-14 10:03 4016

[求助] Windows获取时间出现问题,求教高手

2009-4-14 10:03
4016
代码如下:
                .386
                .model flat,stdcall
                option casemap:none
include                windows.inc
include                user32.inc
includelib        user32.lib
include                kernel32.inc
includelib        kernel32.lib
                .data
szCaption        db        '提示',0
szString        db        '现在是%d年%d月%d日',0
szBuffer        db        256 dup(0)
dYear                dd        0
dMonth                dd        0
dDay                dd        0
systime                SYSTEMTIME        <0,0,0,0,0,0,0,0>
                .code
start:
                invoke GetLocalTime,offset systime
                movzx eax,systime.wYear
                mov        dYear,eax
                movzx eax,systime.wMonth
                mov        dMonth,eax
                movzx eax,systime.wDay
                mov        dDay,eax
                invoke wsprintf,addr szBuffer,addr szString,addr dYear,addr dMonth,addr dDay
                invoke MessageBox,NULL,addr szBuffer,addr szCaption,MB_OK
                end        start

运行后:

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
.386
    .model flat,stdcall
    option casemap:none
include    windows.inc
include    user32.inc
includelib  user32.lib
include    kernel32.inc
includelib  kernel32.lib
    .data
szCaption  db  '提示',0
szString  db  '现在是%d年%d月%d日',0
szBuffer  db  256 dup(0)
dYear    dd  0
dMonth    dd  0
dDay    dd  0
systime    SYSTEMTIME  <0,0,0,0,0,0,0,0>
    .code
start:
    invoke GetLocalTime,offset systime
    movzx eax,systime.wYear
    mov  dYear,eax
    movzx eax,systime.wMonth
    mov  dMonth,eax
    movzx eax,systime.wDay
    mov  dDay,eax
    invoke wsprintf,addr szBuffer,addr szString,dYear,dMonth,dDay
    invoke MessageBox,NULL,addr szBuffer,addr szCaption,MB_OK
    invoke ExitProcess,NULL
    ret

    end  start
2009-4-14 10:23
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
太感谢了。我找了好久都找不到这个错误,文朋友也说程序看着没错。
不愧是版主,一双慧眼啊。
2009-4-14 10:36
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
地址没对齐。。。
2009-4-14 13:48
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
5
不是地址没对齐,而是把变量的“地址”和变量的“值”给搞错了。
对于wsprintf函数,%d,后面带的应该是这个(这些)数字的值,而不是指向这个(这些)数字的地址,这就是小虾版主指出的问题。
当然还有最后要ExitProcess,并加个ret返回。
2009-4-14 14:24
0
游客
登录 | 注册 方可回帖
返回
//