Эксперт быдлокодинга
2091 / 525 / 69
Регистрация: 04.11.2010
Сообщений: 1,310
1

Вылет программы при попытке открыть файл

29.09.2015, 10:51. Показов 1508. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Столкнулся с такой ситуёвиной. При попытке открыть файл функцией CreateFile если в "как действовать" установлено OPEN_EXISTING программа завершается системой (Windows 7 64). Никаких тебе ERROR_FILE_NOT_FOUND и прочих СОСИ_КЕГЛИ выводить не пытается. При наличие файла всё отрабатывает как надо, так что в сторону того что где то ноль или байт какой не довсунул уже и думать устал. Если кто то может что подсказать с меня лимонад и печенька.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
format PE GUI 4.0
entry Start
 
include 'win32a.inc'
section '.text' code readable executable
 
Start:
invoke CreateFile,File_Name,GENERIC_READ+GENERIC_WRITE,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
  cmp eax,INVALID_HANDLE_VALUE
  je Error
  jmp MesOk
MesError:
  invoke MessageBox, NULL, Error, NULL, MB_ICONERROR + MB_OK
MesOk:
  invoke MessageBox, NULL, Ok, Title, MB_OK
  invoke ExitProcess,0
 
section '.data' data readable writeable
 
  Title db 'Title', 0
  Ok db 'Ok',0
  Error db 'ОШИБКА!', 0
  File_Name db 'Test.txt',0
 
section '.idata' import data readable writeable
 
  library kernel32, 'KERNEL32.DLL',user32, 'USER32.DLL'
  include 'api\kernel32.inc'
  include 'api\user32.inc'
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2015, 10:51
Ответы с готовыми решениями:

Вылет при попытке открыть типизированный файл для чтения
При двукратном нажатие на кнопку, для которой написана процедура, программа "вылетает". Методом...

Вылет любой программы при попытке сохраниться на рабочий стол
День добрый. Захожу в паинт, сохраняю работу. По дэфолту открывается сохранение на рабочий стол. И...

Вылет программы при попытке создания главного и дочернего окна
Подскажите пожалуйста, что я сделала не так? Запускается и вылетает. А должно создаваться два...

Прекращение работы (вылет) программы при попытке вывести в поток значения динамического массива
Доброго всем времени суток. Подскажите пожалуйста, почему возникает следующая проблема. Есть...

3
642 / 151 / 60
Регистрация: 08.04.2015
Сообщений: 390
29.09.2015, 13:09 2
Лучший ответ Сообщение было отмечено Полный 30h как решение

Решение

Вылетает, надо полагать, из-за этого:
Assembler
1
2
3
je Error
.....
Error db 'ОШИБКА!', 0
1
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
29.09.2015, 13:14 3
Полный 30h,
INVALID_HANDLE_VALUE = -1
не айс!
Assembler
1
2
3
4
5
6
cmp eax,INVALID_HANDLE_VALUE
  je MesError
  jmp MesOk
MesError:
  invoke MessageBox, NULL, Error, NULL, MB_ICONERROR + MB_OK
MesOk:
лучше
Assembler
1
2
3
inc eax;cmp eax,INVALID_HANDLE_VALUE
   jne MesOk
MesError:
1
Эксперт быдлокодинга
2091 / 525 / 69
Регистрация: 04.11.2010
Сообщений: 1,310
29.09.2015, 17:22  [ТС] 4
UnknownSoldier, Спасибо большое. Иногда глаз замыливается и детская в общем то ошибка стопорит всё кнопанье. Приходится прибегать к помощи со стороны.
Mikl___, да это так, шаблонная формау, там по ходу пьесы дальше ещё 1005000 строк кода. Просто на функциях вечно какую нибудь херню зеваю, вот и делаю стандартные je jne jmp что бы ещё больше чего не напутать. Потом всё равно останется только
Assembler
1
2
3
  cmp eax,INVALID_HANDLE_VALUE
  je MesError
; какой то код
Но для общего образования всё равно полезно знать какие альтернативы в принципе возможны. Спасибо.
0
29.09.2015, 17:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2015, 17:22
Помогаю со студенческими работами здесь

Ошибка при попытке открыть файл
файл не читает, выдает ошибку , ну типо "ошибка открытия" вот текст #include "stdafx.h"...

Ошибка при попытке открыть текстовый файл
При попытке открыть текстовый файл типа txt, выдает ошибку.

При попытке открыть файл он отправляется на печать
Не знаю, что делали на работе с этим ПК, но в контекстном меню всех файлов вместо Открыть появилась...

Программа вылетает при попытке открыть файл
#include<iostream.h> #include<windows.h> #include<conio.h> #include<fstream.h> const int L=31;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru