Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Несколько раз натыкался, что исключение внутри ДЛЛ нельзя... 15.08.04 05:49 Число просмотров: 1756
Автор: void <Grebnev Valery> Статус: Elderman
|
> По кр. мере под виндой. Несколько раз натыкался, что исключение внутри ДЛЛ нельзя было обработать в вызывающем коде.
Поэтому если б речь шла о моём коде, то я привык всё обрабатывать "внутри" самой DLL.
Обработав исключение, записываю текстовую мессагу об ошибке в буфер (если таковая потом понадобится) перед тем, как вернуть из функции DLL код 32-битный ошибки HRESULT.
>При исключении управление
> передается по указателю по fs:0 и в принципе пофиг кто его > туда поставил - вызывающая прога или длл. Другой вопрос > насколько это красиво так делать.. и вообще насколько > красиво жизненная необходимость обработки исключений в > рабочей проге... Писать надо так чтобы исключения не > возникали, во первых это некоторый оверхед на вызов > обработчика через кернел (если часто вызывается), во вторых > если исключения возникают не по причине какого нить деления > на 0 а например Acess violation то...
Я пробовал так когда-то очень давно. Не получалось. ;(
Например, функция DLL пытается прочитать "поле" некого рекордсет. А там облом ... Если это не обработать в ДЛЛ, так я даже в "кетч" блок не попадал из "трай". ;(
Наверное, неправильно программировал.
|
|
|