GetOpenFilename и GetSaveFileName глючат... - программа вылетает
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Все форумы >> [Прочее] >> GetOpenFilename и GetSaveFileName глючат... - программа вылетает |
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
GetOpenFilename и GetSaveFileName глючат... - программа вылетает - 2007-12-08 00:03:45.740000
|
|
|
Necromancer13
Сообщений: 146
Оценки: 0
Присоединился: 2007-06-28 02:00:57.563333
|
пишу я программу, которая преобразования файла в db XXX,XXX,XXX,XXX,XXX,XXX,XXX db XXX,XXX,XXX,XXX,XXX,XXX,XXX и т.д….. я понимаю, что таких программ много, но хочу написать сам…. ну так вот… в начале программы вызывается GetOpenFileName, я выбираю файл… все нормально потом вызывается GetSaveFileName - если я сразу выбираю файл - то все ок, а если выбираю в поле "тип файлов", чтобы показывались все файлы (*.*), навожу курсор на какой-то файл в SaveFileDialog и секунду-две подержу - SaveFileDialog закрывается… я заметил, что в FASMW так же сама проблема… и подумал, что это ВИнда криво написанная… но "Блокнот" Винды, RadASM и остальные программы, работают нормально может кто-то стыкался с такоей проблемой? подсскажите, плиз, что делать я уже целый день мучаюсь и ничего не могу сделать( вот исходник программы:
format PE GUI 4.0
entry start
include '%fasminc%\win32a.inc'
hInstance dd ?
ofn OPENFILENAME
FilterString1 db 'EXE/DLL-files (*.exe/*.dll)',0,'*.exe;*.dll',0,'All Files (*.*)',0,'*.*',0,0
FilterString2 db 'ASM/INC-Files (*.asm/*.inc)',0,'*.asm;*.inc',0,'All Files (*.*)',0,'*.*',0,0
buffer1 db 512 dup (?)
buffer2 db 512 dup (?)
hFile1 dd ?
hFile2 dd ?
start:
invoke GetModuleHandle,0
mov [hInstance],eax
invoke DialogBoxParam,eax,1000,0,DlgProc,0
invoke ExitProcess,0
proc DlgProc hWnd,uMsg,wParam,lParam
cmp [uMsg],WM_COMMAND
jz .wmcommand
cmp [uMsg],WM_CLOSE
jz .wmclose
xor eax,eax
ret
.wmclose:
invoke EndDialog,[hWnd]
xor eax,eax
inc eax
ret
.wmcommand:
mov eax,[wParam]
mov edx,eax
shr edx,16
cmp dx,BN_CLICKED
jne _nafig
invoke RtlZeroMemory,ofn,sizeof.OPENFILENAME
mov [ofn.lStructSize],sizeof.OPENFILENAME
push [hWnd]
pop [ofn.hwndOwner]
push [hInstance]
pop [ofn.hInstance]
mov [ofn.lpstrFilter],FilterString1
mov [ofn.lpstrFile],buffer1
mov [ofn.nMaxFile],512
mov [ofn.Flags],OFN_PATHMUSTEXIST or OFN_FILEMUSTEXIST or OFN_HIDEREADONLY
mov byte [buffer1],0
invoke GetOpenFileName,ofn
dec eax
jnz _nafig
invoke RtlZeroMemory,ofn,sizeof.OPENFILENAME
mov [ofn.lStructSize],sizeof.OPENFILENAME
push [hWnd]
pop [ofn.hwndOwner]
push [hInstance]
pop [ofn.hInstance]
mov [ofn.lpstrFilter],FilterString2
mov [ofn.lpstrFile],buffer2
mov [ofn.nMaxFile],512
mov [ofn.Flags],OFN_PATHMUSTEXIST or OFN_FILEMUSTEXIST or OFN_HIDEREADONLY
mov byte [buffer2],0
invoke GetSaveFileName,ofn
dec eax
jnz _nafig
invoke CreateFile,buffer1,GENERIC_READ or GENERIC_WRITE,0,0,OPEN_EXISTING,0,0
mov [hFile1],eax
invoke CreateFile,buffer2,GENERIC_READ or GENERIC_WRITE,0,0,CREATE_ALWAYS,0,0
mov [hFile2],eax
invoke GetFileSize,[hFile1],0
mov ebx,eax
jmp _next
ccc dd ?
NumRead dd ?
NumWritten dd ?
buf db 5 dup (?)
_fm db '0%Xh',0
___s1 db 9,'db '
___x1 db 5 dup (?)
__koma db ','
___s2 db 0Dh,0Ah
MessDone db 'DONE![image]http://cracklab.ru/f/img/smilies/s1.gif[/image]',0
_next:
invoke WriteFile,[hFile2],___s1,4,NumWritten,0
mov [ccc],15
invoke ReadFile,[hFile1],___x1,1,NumRead,0
dec ebx
jz .pend
movzx eax,byte [___x1]
invoke wsprintf,buf,_fm,eax
add esp,12
invoke lstrlen,buf
invoke WriteFile,[hFile2],buf,eax,NumWritten,0
.loop:
invoke WriteFile,[hFile2],__koma,1,NumWritten,0
invoke ReadFile,[hFile1],___x1,1,NumRead,0
dec ebx
jz .pend
movzx eax,byte [___x1]
invoke wsprintf,buf,_fm,eax
add esp,12
invoke lstrlen,buf
invoke WriteFile,[hFile2],buf,eax,NumWritten,0
dec [ccc]
jz .nextloop
jmp .loop
.nextloop:
dec ebx
jz .pend
inc ebx
invoke WriteFile,[hFile2],___s2,2,NumWritten,0
jmp _next
.pend:
invoke ReadFile,[hFile1],___x1,1,NumRead,0
movzx eax,byte [___x1]
invoke wsprintf,buf,_fm,eax
add esp,12
invoke lstrlen,buf
invoke WriteFile,[hFile2],buf,eax,NumWritten,0
.end:
invoke CloseHandle,[hFile1]
invoke CloseHandle,[hFile2]
invoke MessageBox,0,MessDone,MessDone,MB_ICONINFORMATION
_nafig:
xor eax,eax
inc eax
ret
endp
data import
library user32,'user32.dll',
kernel32,'kernel32.dll',
comdlg32,'comdlg32.dll'
include '%fasminc%\api\user32.inc'
include '%fasminc%\api\kernel32.inc'
include '%fasminc%\api\comdlg32.inc'
end data
section '.rsrc' resource from '______.RES' data readable
|
|
|
RE: GetOpenFilename и GetSaveFileName глючат... - программа вылетает - 2007-12-08 05:12:31.693333
|
|
|
BigIron
Сообщений: 898
Оценки: 0
Присоединился: 2007-05-13 18:53:43.593333
|
Попробуй на соседской винде(на слегка-другом билде). Я слышал что там иногда бывают грабли(особо если что-то неоднородное) из-за того, что в одном билде виндов либа работает в юзер моде , а в каком-нибудь другом уже может работать в кернел моде….. отсюда часто и проблемы переносимости(я под винду не пишу, просто у меня знакомые пишут, иногда вот про такие штуки говорят).
|
|
|
RE: GetOpenFilename и GetSaveFileName глючат... - программа вылетает - 2007-12-08 14:42:58.500000
|
|
|
Alaget
Сообщений: 330
Оценки: 0
Присоединился: 2007-11-08 15:57:53.170000
|
Проблема в коде, а не винде, если что не получается это не значит что виноват Гейтс и его команда.
|
|
|
RE: GetOpenFilename и GetSaveFileName глючат... - программа вылетает - 2007-12-08 17:07:49.456666
|
|
|
Timoti
Сообщений: 31
Оценки: 0
Присоединился: 2007-06-08 23:19:41.400000
|
Попробуй сделать FilterString3 (отдельно, чисто для *.*)…
|
|
|
RE: GetOpenFilename и GetSaveFileName глючат... - программа вылетает - 2007-12-08 19:02:47.726666
|
|
|
Necromancer13
Сообщений: 146
Оценки: 0
Присоединился: 2007-06-28 02:00:57.563333
|
да, согласен, наверно, в коде… но такие программы как FASMW, PEditor, LordPE тоже глючат! http://prikolitvc.ucoz.ru/Boom.rar - в архиве видео, снятое CamStudio… на нем видно, что программа вылетает…:(
|
|
|
RE: GetOpenFilename и GetSaveFileName глючат... - программа вылетает - 2007-12-08 19:04:37.806666
|
|
|
Necromancer13
Сообщений: 146
Оценки: 0
Присоединился: 2007-06-28 02:00:57.563333
|
а может просто у меня винда тупая… или вредная программа какая-то…:)
|
|
|
Все форумы >> [Прочее] >> GetOpenFilename и GetSaveFileName глючат... - программа вылетает |
|
|