|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 14, 2004 12:50:04 Меня замучили разные гюки и несоответствия в работе моих программ под разными операционными системами. :(((((( В чём их координальные отличия? Чего опасаться? Не портить регистры? Какие? Когда? И ещё я обнаружил, что когда глючит какая-то апишная функция, последния раз это было записать файл, то вызвав messegebox глюк исчезает - она его проскакивает. В чём тут дело??? Если кто знает, большой ПЛЗ, помогите! |
|
|
Дата: Авг 14, 2004 14:16:46 В MSDN у функций указываються минимальные требования , начиная с какой ОС их можна использовать . Остальное всё давно и многократно расписано в форуме . Поиск , поиск и поиск . |
|
|
Дата: Авг 14, 2004 14:30:37 >В MSDN у функций указываються минимальные требования , начиная с какой ОС их можна использовать . Ясен пень! Это всё ясно, все функции поддерживаются. А ссылочки, плз, нельзя? |
|
|
Дата: Авг 27, 2004 14:01:27 |
|
|
Дата: Авг 30, 2004 19:04:15 valterg Спасибо, за ссылочку, но я имел ввиду другое: где же это многократно написано на форуме? |
|
|
Дата: Авг 30, 2004 21:47:44 Avalonec Не портить регистры? Какие? Когда? где же это многократно написано на форуме? http://wasm.ru/forum/index.php?action=vthread&forum=4&topic=6195 http://wasm.ru/forum/index.php?action=vthread&forum=4&topic=6668 и т.д. |
|
|
Дата: Авг 31, 2004 10:25:04 bogrus Спасибо, за ссылки. То что не портить регистры это я знал, но глюки всё равно обнаруживаются. Я написал макрос invokeapi, который сохраняет все регистры используемые апишными функциями, но глюки не прекратились. И хочу ещё заметить: я обнаружил, что когда глючит какая-то апишная функция, последния раз это было записать файл, то вызвав messegebox глюк исчезает - она его проскакивает. В чём тут дело??? И причём тут финкции callback'и если я пишу их сам - использую лишь в пределах своей программы? |
|
|
Дата: Авг 31, 2004 10:46:38 В чём тут дело??? Показывай код (только не на семь страниц) , так ничерта не понятно |
|
|
Дата: Сен 1, 2004 17:02:44 Вот процедурка: save_file proc mem:DWORD, len:DWORD, bf_file:DWORD, switch:DWORD ;Загружаем путь файла ;bits or (+) ;(0)0 - ofn bf_file=buffer_way_file==NULL ;(0)1 - bf_file ;(1)0 - delete file, message box ;(1)1 - delete file, без подтверждения pushad ;;;;;;;;;;;;;;;;;;если здесь запустить MessageBox, то глюк якобы исчезает. И ещё мне интересно будет ли у тебя это глючить? На вин9x не глючило, а вот на хр, кердык. Если не глючит, то возможно, но, блин, мало вероятно, глюк как бы накапливается. test switch,bit_0 jnz @@1 .if bf_file==0 invoke GetSaveFileName, ADDR ofn .else mov [ofn.lpstrFileTitle],0 invoke copy_str, bf_file, ofn.lpstrFile invoke GetSaveFileName, ADDR ofn .endif CP eax,FALSE,z,@@3 mov bf_file,OF buffer_way_file @@1: invoke find_file,bf_file .if hFindFile!=INVALID_HANDLE_VALUE test switch,bit_1 jnz @@2 invoke MessageBox,ofn.hWndOwner,ADDR soob_2,ADDR soob_2_1,MB_YESNO+MB_ICONWARNING CP eax,IDNO,z,@@3 @@2: invoke DeleteFile,bf_file .endif invoke CreateFile,bf_file,\ GENERIC_READ or GENERIC_WRITE ,\ FILE_SHARE_READ or FILE_SHARE_WRITE,\ NULL,CREATE_NEW,FILE_ATTRIBUTE_ARCHIVE,NULL mov hFileWrite,eax invoke WriteFile,eax,mem,len,ADDR SizeReadWrite,NULL invoke CloseHandle,hFileWrite @@3: popad ret save_file endp |
|
|
Дата: Сен 1, 2004 23:24:12 Блин , а в чём хоть глюк выражаеться в этой программе ? И лучше бы дизассемблированный листинг приатачил , чем этот код :) "CP eax,FALSE,z,@@3" - что это ? Ты пробывал переписать свою программу без этой ерунды , без invoke и без .endif , уверен глюки сами всплывут где надо . |
|
|
Дата: Сен 2, 2004 03:51:57 bogrus "CP eax,FALSE,z,@@3" - что это ? Шутишь? Чего тут непонятного? cmp eax,FALSE jz @@3 Avalonec Почему ты не проверяешь успешность вызова CreateFile, а сразу WriteFile? |
|
|
Дата: Сен 2, 2004 09:40:43 q_q Да смысл этого CP мне был понятен , а вот как реализован этот макрос я другие в этом коде не видно . Это стандартный макрос масма ? Avalonec pushad,popad можешь по идее выкинуть из этой ф-ции , если она не должна сохранять тебе eax,ecx,edx . |
|
|
Дата: Сен 2, 2004 12:15:09 bogrus как реализован этот макрос Если автор заявляет, что где-то код работает, то думаю, что проблема не в реализации макроса. Это стандартный макрос масма ? Не думаю. |
|
|
Дата: Сен 2, 2004 14:41:42 bogrus Да, как правильно предположил q_q, это в сущности cmp eax,FALSE jz @@3 , но только есть ещё проверка на 0 Вот он целиковый: CP MACRO QAX,QBX,J1,M IF @InStr( 1, <QBX>, <0> ) EQ 1 AND ((@InStr( 1, <J1>, <Z> ) EQ 1) OR (@InStr( 1, <J1>, <NZ> ) EQ 1) OR (@InStr( 1, <J1>, <E> ) EQ 1) OR (@InStr( 1, <J1>, <NE> ) EQ 1)) or QAX,QAX J&J1 M ELSEIF @InStr( 1, <QBX>, <0> ) EQ 1 AND ((@InStr( 1, <J1>, <z> ) EQ 1) OR (@InStr( 1, <J1>, <nz> ) EQ 1) OR (@InStr( 1, <J1>, <e> ) EQ 1) OR (@InStr( 1, <J1>, <ne> ) EQ 1)) or QAX,QAX J&J1 M ELSE cmp QAX,QBX J&J1 M ENDIF ENDM Ты пробывал переписать свою программу без этой ерунды , без invoke и без .endif , уверен глюки сами всплывут где надо . Уж invoke и .if работают проверено Hatch'ем. :) Я не думаю, что из-за этого глючит, но попробую, проверю. Это стандартный макрос масма ? Нет. Я просто, если замечаю, что можно оптимально и просто писать с использованием макроса, то обязательно пишу такие вот макросы. pushad,popad можешь по идее выкинуть из этой ф-ции , если она не должна сохранять тебе eax,ecx,edx . Я взял за привычку все более-менее продвинутые функции запускать через pushad и popad. Основная причина такого это то что я не доверяю апишным функциям. :) q_q Почему ты не проверяешь успешность вызова CreateFile, а сразу WriteFile? Потому как это не совсем нужно, но в принципе это нужно, да,спасибо, подправлю. Но это не меняет сути. Такая проверка нужна, чтобы проверить не закрыт ли доступ к файлу, а он не закрыт. |
|
|
Дата: Сен 2, 2004 14:47:37 bogrus Блин , а в чём хоть глюк выражаеться в этой программе ? Выражается в том, что программа начинает работать без этой функции, точнее от неё никакого толку - я имею ввиду в данном случае без записи файла. Хотя хочу сказать у меня были ещё подобные проблемы - не работали апишные функции. Это было правда при написании большого проекта, так что там я мого сам перемудрить. :) И хотя, не без этого, но врядли она и там глючила по моей причине. Не уж-то никто и никогда не сталкивлся с не понятными глюками в винде??? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.043 |