请帮我看看哪里不对,谢谢

IT保安 2014-03-13 04:48:23
#include		<resource.h>

#define ICO_MAIN 1000
#define DLG_MAIN 1000
#define IDC_FILE 1001
#define IDC_CMDLINE 1002
#define IDC_BROWSE 1003


ICO_MAIN ICON "my.ico"

DLG_MAIN DIALOG 111,104,201,57
STYLE DS_MODALFRAME | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "执行文件 "
FONT 9,"宋体"
{
LTEXT "文件名",-1,7,8,25,8
EDITTEXT IDC_FILE,35,5,160,12,ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
LTEXT "命令行",-1,7,25,25,8

EDITTEXT IDC_CMDLINE,35,22,160,12,ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
PUSHBUTTON "浏览",IDC_BROWSE,115,38,40,14
PUSHBUTTON "执行",IDOK,155,38,40,14,WS_DISABLED | WS_TABSTOP
}


		.386
.model flat,stdcall
option casemap:none

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

ICO_MAIN equ 1000
DLG_MAIN equ 1000
IDC_FILE equ 1001
IDC_CMDLINE equ 1002
IDC_BROWSE equ 1003


.data?
hInstance dd ?
hWinMain dd ?
stProcInfo PROCESS_INFORMATION <?> ;在创建进程时相关的数据结构之一,该结构返回有关新进程及其主线程的信息。
szFileName db MAX_PATH dup (?)
szCmdLine db MAX_PATH dup (?)

.const
szFileExt db '可执行文件(*.exe;*.com)',0,'*.exe;*.com',0,0

.code
_ProcExec proc uses ebx esi edi _lParam


_ProcExec endp
_ProcDlgMain proc uses ebx esi edi hWnd,wMsg,wParam,lParam
local @dwThreadID
local @stOF:OPENFILENAME ;OPENFILENAME结构包含了GetOpenFileName和GetSaveFileName
;函数用来初始化打开或另存为对话框的信息。在用户关闭对话框后
;系统返回关于用户的选择信息到这个结构中。


mov eax,wMsg
.if eax == WM_INITDIALOG
push hWnd
pop hWinMain
invoke SendDlgItemMessage,hWnd,IDC_FILE,EM_LIMITTEXT,MAX_PATH,0
invoke SendDlgItemMessage,hWnd,IDC_CMDLINE,EM_LIMITTEXT,MAX_PATH,0
.elseif eax == WM_CLOSE
invoke EndDialog,hWnd,NULL
.elseif eax == WM_COMMAND
mov eax,wParam
.if ax == IDOK
.if stProcInfo.hProcess
invoke TerminateProcess,stProcInfo.hProcess,-1 ;终止指定进程及其所有线程
.else
invoke CreateThread,NULL,0,offset _ProcExec,NULL,\
NULL,addr @dwThreadID
invoke CloseHandle,eax
.endif
.elseif ax == IDC_BROWSE
invoke RtlZeroMemory,addr @stOF,sizeof @stOF
push hWinMain
pop @stOF.hwndOwner
mov @stOF.lpstrFilter,offset szFileExt
mov @stOF.lpstrFile,offset szFileName
mov @stOF.nMaxFile,MAX_PATH
mov @stOF.Flags,OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST
invoke GetOpenFileName,addr @stOF
.if eax
invoke SetDlgItemText,hWnd,IDC_FILE,addr szFileName
.endif
.elseif ax == IDC_FILE
invoke GetWindowTextLength,lParam
mov ebx,eax
invoke GetDlgItem,hWnd,IDOK
invoke EnableWindow,eax,ebx
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret

_ProcDlgMain endp

start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,eax,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
invoke ExitProcess,NULL
end start


资源文件和源文件如上,线程部分没写,就是个空架子,对话框正常生成,但是点击浏览按钮,没有反应,应该弹出一个对话框来选择文件!不知道哪里有问题!请大家帮我看看!
...全文
127 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT保安 2014-03-13
  • 打赏
  • 举报
回复
不需要回复,找到问题所在了!

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧