首页
社区
课程
招聘
这个汇编程序哪里出错了~~~[求助]
2006-6-14 10:57 4102

这个汇编程序哪里出错了~~~[求助]

2006-6-14 10:57
4102
;复制自身到系统目录下,名为just4test.exe
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
include \masm32\include\masm32.inc
includelib \masm32\lib\masm32.lib
.data
temp db "\just4test.exe",0
msgtext db "copy error!!!",0
msgtitle db "info",0
.data?
path db 256 dup(?)
.code
start:
invoke GetSystemDirectory,addr path,256
invoke szCatStr,addr path,addr temp
invoke GetCommandLine
invoke CopyFile,eax,addr path,FALSE   
;是这里错了吗?是不是这样用eax是
;错的,我在这里加过一个测试,弹出对话框显示eax的值,确实是现在程序的名字,
;如果这个参数直接用名字就对,用eax就错
cmp eax,0
jne @f
invoke MessageBox,NULL,addr msgtext,addr msgtitle,MB_ICONERROR
@@:
invoke ExitProcess,NULL
end start

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

收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
figofuture 2006-6-14 11:47
2
0
CopyFile 第一个参数应该是一个字符串的指针吧
BOOL CopyFile(
  LPCTSTR lpExistingFileName,
                          // pointer to name of an existing file
  LPCTSTR lpNewFileName,  // pointer to filename to copy to
  BOOL bFailIfExists      // flag for operation if file exists
);
雪    币: 221
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
vlit 2006-6-14 15:53
3
0
楼上的我还不至于那么白
我自己搞定了,是GetCommandLine的问题
发出来欣赏一下
;复制自身到系统目录下,名为just4test.exe
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
include \masm32\include\masm32.inc
includelib \masm32\lib\masm32.lib
.data
temp db "\just4test.exe",0
temp1 db ".exe",0
msgtext db "copy error!!!",0
msgtitle db "info",0
.data?
path db 256 dup(?)
name dd ?
.code
start:
invoke GetSystemDirectory,addr path,256
invoke szCatStr,addr path,addr temp
invoke GetCommandLine

invoke CopyFile,eax,addr path,FALSE
cmp eax,0
jne @f
invoke MessageBox,NULL,addr msgtext,addr msgtitle,MB_ICONERROR
@@:
invoke ExitProcess,NULL
end start
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
来去无踪 2006-6-17 19:36
4
0
invoke CopyFile,eax,addr path,FALSE
后的函数的第一个参数不能为eax
相关的图片
http://w9126.go2.icpcn.com/001.jpg
雪    币: 221
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
vlit 2006-6-18 12:40
5
0
我用eax已经成功了啊~~~~~怎么不能
我倒~~~~~~~
游客
登录 | 注册 方可回帖
返回