Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
#1

У меня одного не работает API-функция, устанавливающая новый обработчик исключений? - C++

02.12.2011, 17:35. Просмотров 437. Ответов 0
Метки нет (Все метки)

Ребята, кто заинтересовался, потестите, результаты сюда. В первую и основную очередь интересует компилятор g++
C++
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <excpt.h> 
  
       
       
                                   //+
                                   //+
                                   //+
LONG WINAPI TopLevelUnhandledExceptionFilter(PEXCEPTION_POINTERS x)      {
 //Это функция-обработчик исключений, которая никогда не вызывается
 printf ("hello, word!\n");
 getchar ();
 return 0;
}
            //....................................................
                                   //+
                                   //+
                                   //+
       
int main(){
 
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 
 PNT_TIB pTIB;
 PEXCEPTION_HANDLER handler_;
 
 printf ("новая функция-обработчик находится по адресу: %x\n"\
         ,(unsigned int)TopLevelUnhandledExceptionFilter);
 
 
                                 //++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 pTIB= (PNT_TIB)NtCurrentTeb();
// //NtCurrentTeb() недокументированная функция, 
//суть ассемблерная вставка где-то 
 
 //А это сразу указатель найдём на функцию-обрабочик исключения
 handler_= ((PEXCEPTION_REGISTRATION_RECORD)pTIB->ExceptionList)->handler;
 
 
 printf ("\nДо вызова SetUnhandledExceptionFilter:\n");
 printf ("TEB текущего потока== %x\n", (unsigned int)pTIB);
 printf ("TIB текущего потока== %x\n", (unsigned int)pTIB);
 printf ("Стандартная Функция-обработчик исклюючения находится по адресу== %x\n", (unsigned int)handler_);
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                 //++
 
 
//устанавливаем обработчик исключения
printf ("\nSetUnhandledExceptionFilter вернула %x\n\n",\
         (unsigned int)SetUnhandledExceptionFilter(TopLevelUnhandledExceptionFilter));;
 
 
                                 //++
//повторяем процедуру нахождения адреса обраблотчика
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 pTIB= (PNT_TIB)NtCurrentTeb();
 handler_= ((PEXCEPTION_REGISTRATION_RECORD)pTIB->ExceptionList)->handler;
 printf ("После вызова SetUnhandledExceptionFilter:\n");
 printf ("TEB текущего потока== %x\n", (unsigned int)pTIB);
 printf ("TIB текущего потока== %x\n", (unsigned int)pTIB);
 printf ("Новая Функция-обработчик исклюючения находится по адресу== %x\n", (unsigned int)handler_);
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                 //++
 getchar ();
 return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2011, 17:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос У меня одного не работает API-функция, устанавливающая новый обработчик исключений? (C++):

Обработчик исключений - C++
Помогите написать обработчик исключений по заданию: Опишите функцию анализа номера телефона, обработайте ошибку задания номера в неверном...

Свой обработчик unexpected исключений - C++
что-то не получается. class Exp { }; class Exp1 { }; void UnThrow() { std::cout &lt;&lt; &quot;my unexphandler&quot;; ...

Обработчик исключений обрабатывает не все исключения - C++
здравствуйте Необходимо создать три массива a, b и с размерами соответственно n1, n2 и n3. В массив а занести значения функции f(x)=...

Обработка исключений. Как организовать общий обработчик исключений? - C#
У меня есть последовательность вызова методов для внесения данных в таблицу БД. Сам метод внесения данных. Он генерирует исключение ...

Обработчик событий работает только для одного textBox - C#
Добрый день, два текстбокса подключил к одному обработчику private void InputKey(...,...) в виндоусформ через дизайнер. Почему для первого...

Пример с одного сайта у меня на сервере не работает - PHP
В учебнике: http://ru.html.net/tutorials/php/lesson5.php , я нашел вот такой пример: &lt;html&gt; &lt;head&gt; &lt;title&gt;Циклы&lt;/title&gt; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2011, 17:35
Привет! Вот еще темы с ответами:

У меня не работает Windows Media Player, новый установить я не могу - Видеопрограммы
Извените, если плохо обьясню))) У меня не работает Windows Media Player, новый установить я не могу. Не знаю связано ли ето , но когда...

Не работает функция 'запомнить меня' - PHP
Всем доброго времени суток! Подскажите пожалуйста, почему не удается реализовать функцию 'запомнить меня'? &lt;form action=&quot;/login&quot;...

Обработчик исключений - Turbo Pascal
Помогите нужно сделать, чтобы некорреектное поведение пользователя не вызывало вылет программы, а обрабатывалось. Нужно ввести цифру, а...

Почему не работает API функция? - C#
При компиляции следующего кода - вылетает ошибка: using System; using System.Collections.Generic; using System.ComponentModel; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru