注册 登录
编程论坛 汇编论坛

不明错在哪儿

chengiant 发布于 2006-03-13 18:41, 628 次点击
看我下段代码
.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\user3232.lib
.data
hInstance HINSTANCE ?
hCommandLine dd ?
;show STARTUPINFO ?
;info PROCESS_INFORMATION ?
exeName db "C:\Program Files\TTPlayer\TTPlayer.exe",0
.CODE
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke GetCommandLine
MOV hCommandLine,eax
invoke CreateProcess,NULL,addr exeName,NULL,NULL,TRUE,NULL,\
NULL,NULL,SW_SHOW,NULL
invoke ExitProcess,-1
end start
编译后出现"windows 出现技术问题",我把CreateProcess函数换成"invoke WinExec,addr exeName,NULL"便成功了,这是为什么?哪为能给我指点一下,谢谢!!!!
QQ:253169051
E-mail:chengiant@126.com
2 回复
#2
wy_52033452006-03-14 13:15

.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib

.data
hInstance dd ?
hCommandLine dd ?
show STARTUPINFO <?>;去掉语句前边的";"符号,并将?变为<?>因为这是定义的数据结构
info PROCESS_INFORMATION <?> ;同上
exeName db "C:\Program Files\TTPlayer\TTPlayer.exe",0

.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke GetCommandLine
MOV hCommandLine,eax
invoke CreateProcess,NULL,addr exeName,NULL,NULL,TRUE,NULL,\
NULL,NULL,addr show,addr info
invoke ExitProcess,-1
end start

正确的代码应该是这样的,注意用红色标注的地方。

#3
chengiant2006-03-15 12:07
二楼的谢谢了!
1