首页
社区
课程
招聘
[求助]菜鸟提问,希望高手能够帮忙解答,关于写文件返回字节数的问题
发表于: 2007-8-8 13:20 4917

[求助]菜鸟提问,希望高手能够帮忙解答,关于写文件返回字节数的问题

2007-8-8 13:20
4917
.data?
hFile                dd        ?
lpBuffer        db        [128] dup (?)
lpcount                db        ?
                .const
lpFile        db        '1.txt',0
lpStr        db        'hahaha',0
                ……
                invoke        WriteFile,hFile,addr lpStr,sizeof lpStr,addr lpBuffer,NULL
                invoke        wsprintf,addr lpcount,addr lpBuffer,NULL
                invoke        MessageBox,NULL,addr lpcount,addr lpStr,MB_OK
                ……
WriteFile的倒数第2个参数根据查看资料是实际写入文件的字节数。我想通过弹框显示出来。可是为什么运行后弹框内容是个小圆圈??
求教各位大大帮我改改错误

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 255
活跃值: (266)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
2
看WriteFile的返回值,成功了就是实际大小。
失败就去找其他原因
2007-8-8 13:24
0
雪    币: 108
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
实际写入字节数是通过返回值返回,而不是写到WriteFile倒数第2个参数的缓冲区内的?书上是那样说的呀
2007-8-8 13:25
0
雪    币: 108
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
实际写入字节数是通过返回值返回,而不是写到WriteFile倒数第2个参数的缓冲区内的?书上是那样说的呀

要不麻烦你帮我把代码改改
2007-8-8 13:27
0
雪    币: 255
活跃值: (266)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
5
BOOL WriteFile(
  HANDLE hFile,
  LPCVOID lpBuffer,
  DWORD nNumberOfBytesToWrite,
  LPDWORD lpNumberOfBytesWritten,
  LPOVERLAPPED lpOverlapped
);
2007-8-8 13:28
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
6
.386
.model flat,stdcall
option casemap:none

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

.data?
hFile    dd  ?
szBuffer db 126 dup(?)
dwTemp dd ?
.const
lpFile  db  '1.txt',0
lpStr  db  'hahaha000000000000',0
lpcount    db  '输入了:  %lu 个字符',0
.code
start:
    invoke CreateFile,addr lpFile,GENERIC_WRITE,FILE_SHARE_READ,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
    mov hFile,eax
    invoke  WriteFile,hFile,addr lpStr,sizeof lpStr,addr dwTemp,NULL
    mov eax,dwTemp
    invoke  wsprintf,addr szBuffer,addr lpcount,eax
    invoke  MessageBox,NULL,addr szBuffer,addr lpFile,MB_OK
end start
2007-8-8 13:31
0
雪    币: 108
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
麻烦各位大大帮我把代码改改,我不知道该如何实现。
我想把实际写入文件的字节数通过弹框显示出来。
2007-8-8 13:35
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
8
invoke  wsprintf,addr lpcount,addr lpBuffer,NULL
是这个用错了
int wsprintf(
  LPTSTR lpOut,    // pointer to buffer for output
  LPCTSTR lpFmt,   // pointer to format-control string
  ...              // optional arguments
);
2007-8-8 13:37
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
wsprintf格式化串的问题
2007-8-8 13:39
0
雪    币: 108
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
该怎么改?
这是我第一个实验的例子,毫无经验,请不要BS我,帮我改改吧!
2007-8-8 13:43
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
11
.386
.model flat,stdcall
option casemap:none

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

.data?
hFile    dd  ?
szBuffer db 126 dup(?)
dwTemp dd ?
.const
lpFile  db  '1.txt',0
lpStr  db  'hahaha000000000000',0
lpcount    db  '输入了:  %lu 个字符',0
.code
start:
    invoke CreateFile,addr lpFile,GENERIC_WRITE,FILE_SHARE_READ,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
    mov hFile,eax
    invoke  WriteFile,hFile,addr lpStr,sizeof lpStr,addr dwTemp,NULL
    mov eax,dwTemp
    invoke  wsprintf,addr szBuffer,addr lpcount,eax
    invoke  MessageBox,NULL,addr szBuffer,addr lpFile,MB_OK
end start
2007-8-8 14:20
0
雪    币: 108
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
非常的感谢你!同时让我学会了writefile与wsprintf的用法!!!
2007-8-8 15:49
0
游客
登录 | 注册 方可回帖
返回
//