Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Про ошибки в DLL
Форум на CrossPlatform.RU > Разработка > С\С++
Litkevich Yuriy
По поводу DLL-ок вопрос.

Положим есть DLL-ка и запущены 2 приложения использующие её.
А в DLL-ке баг, который в определённой ситуации приведёт к её падению.

Допустим одно приложение создало такую ситуацию, при этом оба приложения упадут и сама DLL-ка?

Как это работает?
Алексей1153
Litkevich Yuriy, насколько я понимаю, если одно приложение создало ситуацию, то упадёт только оно. А DLL падать не умеет.

всё, что в Dll, - как бы присоединяется к загрузившему её приложению, то есть становится частью этого приложения с общей для dll и приложения памятью, потоками и процессом. Поэтому два таких dll-хвоста в двух разных приложениях никак сами по себе не взаимодействуют.

Следовательно, если баг есть в DLL, то этот баг будет в любом приложении, которое загрузило себе эту DLL (будет сидеть и не проявляться, возможно. Или проявится, если косячный код вызовется)

Но если некий злой гений специально сделал какую-нибудь глобальную отслеживалку в DLL, которая при падении процесса заставляет во всех копиях dll тоже спровоцировать краш - тогда да :D

Iron Bug
в норме у современных ОСей каждый процесс имеет свою копию DLL'ки.
естественно, это не отменяет возможности использования внутри DLL каких-то общесистемных ресурсов (расшаренных системных ресурсов, общей памяти для каких-то глобальных данных и т.д.) и в этом случае, если возникли какие-то серьёзные нарушения доступа, то может упасть всё, вплоть до системы :) но такое редко встречается в DLL'ках.
Litkevich Yuriy
Цитата(Iron Bug @ 7.2.2019, 6:24) *
но такое редко встречается в DLL'ках
ну это зависит от того, как я её накастылю 😀
Алексей1153
Litkevich Yuriy, глобальный хук с рекурсией подойдёт :D
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2019 IPS, Inc.