关于文件另存为 程序的 奇怪状况
_GetSaveFile proc lpBuffer,dwBufferSizelocal @stOpenFileName:OPENFILENAME
invoke RtlZeroMemory,addr @stOpenFileName,sizeof OPENFILENAME
invoke RtlZeroMemory,lpBuffer,dwBufferSize
mov @stOpenFileName.lStructSize,SIZEOF @stOpenFileName
mov @stOpenFileName.Flags,OFN_OVERWRITEPROMPT or OFN_CREATEPROMPT
push hWinMain
pop @stOpenFileName.hwndOwner
mov @stOpenFileName.lpstrFilter,offset szAllFile
push lpBuffer
pop @stOpenFileName.lpstrFile
;mov @stOpenFileName.lpstrFile,offset lpBuffer
mov @stOpenFileName.nMaxFile,MAX_PATH
invoke GetSaveFileName,addr @stOpenFileName;创建一个Save公共对话框,以便用户指定驱动器、目录和文件名
ret
_GetSaveFile endp
参数lpBuffer代表文件缓冲 dwBufferSize 为文件缓冲名长度 问题是这里用
push lpBuffer
pop @stOpenFileName.lpstrFile
(顺便问下 这2句是怎么实现的 为什么用PUSH 与POP???)
但我换成mov @stOpenFileName.lpstrFile,offset lpBuffer 就无法编译通过
理应是正确的嘛
假设 “另存为”的框框 的那个默认文件名 是123 怎么搞呢?? 直接
@stOpenFileName.lpstrFile,“123” 不行哦
[ 本帖最后由 wsz9903011 于 2009-8-31 22:53 编辑 ]