标题:不明错在哪儿
只看楼主
chengiant
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-3-13
 问题点数:0 回复次数:2 
不明错在哪儿
看我下段代码
.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
搜索更多相关主题的帖子: include option start 
2006-03-13 18:41
wy_5203345
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-2-6
得分:0 

.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

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


2006-03-14 13:15
chengiant
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-3-13
得分:0 
二楼的谢谢了!
2006-03-15 12:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-50217-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.964289 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved