· Начало · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Продолжая тему глюков в fasm...

Посл.отвђт Сообщенiе


Дата: Июн 23, 2004 05:06:01

Такая ситуация: пишу я на fasm (1.52), проверяю на 98 (в МЕ тоже самое) в Microsoft Virtual PC. А глюк в том, что вместо CloseHandle (это мне по секрету olly сказал) там вызывается FindCloseChangeNotification. В принципе мне это параллельно, но в некоторых программах столкнулся с проблемой - необходимо закруть открытый файл. Не получается:( В результате ВСЕ работает не так... На NTшных системах все как надо. Может это глюк olly/VPC а не fasm, но в masm32 все нормально. Походу все программы на fasm грешат подобным - fasmw не иcключение... Может кто сталкивался?? GetProcAddress'ом мне не хочется искать.
PS. Дословно ЭТО звучит так (на примере fasmw):
0040BC91 |. FF15 F8D04100 CALL DWORD PTR DS:[<&KERNEL32.CloseHandle>] ; \FindCloseChangeNotification


Дата: Июн 23, 2004 05:14:21

> Может это глюк olly

Именно! И только под 9x виндами, Olly не правильно показывает имя, но функция вызывается правильная ;-)


Дата: Июн 23, 2004 05:15:41

Причем на любых прогах, fasm тут не причем ;-)


Дата: Июн 23, 2004 05:18:05

Спасбо за быстрый ответ-) А почему в masm все нормально? и файл не закрывается (может у меня глюк..)??


Дата: Июн 23, 2004 05:29:54

Marazm
файл не закрывается
GetLastError что сообщает?


Дата: Июн 23, 2004 05:41:40

q_q
Не знаю-) я сейчас не дома, приду - обязательно проверю. спасибо;)


Дата: Июн 23, 2004 05:51:06

> А почему в masm все нормально? и файл не закрывается (может у меня глюк..)??

Гы-гы, вот тебе листинг, прога написана на masm'е, имеем два глюка в одном месте в Olly под win98 ;-)
004016EF  |> 68 00800000    PUSH 8000                                      ; /FileName = 00008000 ???
004016F4  |. 6A 00          PUSH 0                                         ; |String = NULL
004016F6  |. FF35 B0314000  PUSH DWORD PTR DS:[4031B0]                     ; |Key = NULL
004016FC  |. FF35 AC314000  PUSH DWORD PTR DS:[4031AC]                     ; |Section = NULL
00401702  |. FF15 28104000  CALL DWORD PTR DS:[<&kernel32.VirtualFreeEx>]  ; \WritePrivateProfileStringW
00401708  \> C3             RETN
00401709     8D49 00        LEA ECX,DWORD PTR DS:[ECX]
0040170C  /$ E8 BBFFFFFF    CALL CRTHREAD.004016CC
00401711  |. 50             PUSH EAX
00401712  |. FF35 AC314000  PUSH DWORD PTR DS:[4031AC]                     ; /hChange = NULL
00401718  |. FF15 48104000  CALL DWORD PTR DS:[<&kernel32.CloseHandle>]    ; \FindCloseChangeNotification


Дата: Июл 1, 2004 03:37:24

Asterix
Спасибо, успокоили:)
Все
Всем БОЛЬШОЕ спасибо! Разобрался. Дело совсем не в том было-) Просто крайнего видать искал.