Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2014, 04:32   #1
fredwriter
Форумчанин
 
Регистрация: 06.10.2009
Сообщений: 121
По умолчанию Необработанное исключение.

Здравствуйте, не могу никак отловить один косяк в программе. При запуске Debug версии программы из среды Visual Studio, она работает, никаких исключений не выдаёт, а когда из проводника запускаю ту же Debug версию exe файла, в одном и том же месте выдаёт это самое исключение - "Нарушение прав доступа при чтении". Кстати, Release-версия даже из среды Visual Studio выдаёт то же самое исключение. Файл запускается на одном и том же компе. Надеюсь кто-нибудь сталкивался с такой проблемой.
Я пробовал компилировать и с отладочной информацией и без неё - одно и то же. У меня Visual Studio 2010.
Ищущий да обрящет
fredwriter вне форума Ответить с цитированием
Старый 19.04.2014, 05:16   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Что за код?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 19.04.2014, 05:52   #3
fredwriter
Форумчанин
 
Регистрация: 06.10.2009
Сообщений: 121
По умолчанию

Короче, вот код, в котором срабатывает исключение. Это функция InitInstansce:
Код:
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{

    HWND hWnd;

    hInst = hInstance; // Сохранить дескриптор экземпляра в глобальной переменной
//	InitCommonControls();
    hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
       CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
	
    if (!hWnd)
    {
		return FALSE;
    }

    ShowWindow(hWnd, nCmdShow);
	
	
    UpdateWindow(hWnd);
	

	int dd = 0;
	dd = DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, Sel_Game);
		
    return TRUE;
}
InitInstance вызывается при инициализации приложения. В ней я вызываю DialogBox, и при запуске приложения всё работает нормально и строчка отрабатывает, и после этого диалогБокса вызывается еще один. Ввожу в него информацию, нажимаю на кнопку создать (есть там такая), и тут как раз вызывается это исключение. На строчке вызова DialogBox. Может что InitInstance вызывается еще раз, и я так подозреваю, получается CreateWindow и DialogBox обращаются к одной и той же hWnd. Но почему тогда первый раз всё срабатывает нормально, и при запуске из среды всё работает отлично, и этот диалог не вызывается повторно - значит InitInstance вызывается один раз. Точно один, в процедуре TWinMain, перед запуском цикла сообщений.
Пробовал этот DialogBox вызывать в процедуре WndProc в Message WM_CREATE, в этом случае исключение падает на строчке CreateWindow(......);.
Ищущий да обрящет

Последний раз редактировалось fredwriter; 19.04.2014 в 05:55.
fredwriter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необработанное исключение в 0x77de4621 JackyBrown Win Api 5 13.04.2013 18:34
Необработанное win 32 исключение произошло cska Косторных Помощь студентам 2 05.01.2013 22:41
Необработанное исключение Faton 11 Общие вопросы C/C++ 4 31.10.2012 00:29
C++ Error Необработанное исключение...нарушение прав доступа Alt_Shift Помощь студентам 1 24.05.2012 12:55
Ошибка: Необработанное исключение типа "System.IO.FileNotFoundExceptio n" MoT9I Visual C++ 1 27.11.2011 12:31