![]() |
|
![]() ![]() ![]() |
|
LexusCheby |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 28.1.2007 Репутация: нет Всего: нет |
Всем доброго времени суток!
Проблема возникает при вызове функции из DLL В проекте, где создана DLL эта ф-я описана следующим образом: void SetMode (unsigned char _Mode) { if (_Mode) Mode = 1; else Mode = 0; } где Mode - глобальная переменная Так вот. Когда клиентская программа делает вызов SetMode (1); Выходит окно сообщения Priveleged Instruction. После закрытия этого сообщения программа работает правильно. ![]() Но уж очень хочется избавиться от этого всплывающего окошка. Help |
|||
|
||||
LexusCheby |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 28.1.2007 Репутация: нет Всего: нет |
Исправил следующим образом:
Вызов SetMode поместил в блок try и поставил пустой обработчик исключения catch(EPrivilege &a) Точно не могу объяснить почему, но ошибка пропала. Кто знает тонкости винды и работы внешних обработчиков исключений - поясните плиз |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Это называется, не исправил, а замаскировал. Программа пытается сообщить об Вам об ошибке, а Вы ей : "Наплевать, и так сойдет" ![]() Добавлено @ 12:19 И она не пропала. Вы ее перехватили и утопили. Но от этого ошибка никуда не денется -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
LexusCheby |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 28.1.2007 Репутация: нет Всего: нет |
Ну тогда подскажите откуда она берется. DLL никаких ассемблерных строк для работы с com портами не использует. Вызовы других подобных функций ничем не отличаются. Мне кажется это ложное исключение.
|
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 2 Всего: 121 |
Надо под отладчиком глянуть в какой ассемблерный код транслируется такая функция, ибо это сообщение об ошибке выползает тогда, когда программа пытается выполнить недопустимую, на пользовательством уровне, команду процессора.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |