В базовых библиотеках Delphi нет ничего, что могло бы вызвать BSOD напрямую.Как отметил Дэвид, программы на Delphi работают в пространстве пользователя.Однако, если они отправляют недопустимые данные в драйвер пространства ядра, это другое дело.
Вы сказали, что обновление D7-D2010, и первое, что приходит мне в голову, это обновление строки.Стандартный тип строки Delphi был изменен с AnsiString
(1 байт на символ) на UnicodeString
(2 байта на символ), и если вы отправляете неверный тип строки в драйвер или системную подпрограмму, это может вызвать странное поведение.
Первым делом я запустил бы полную сборку и следил за предупреждениями "неявного преобразования" от компилятора.Это означает, что вы смешиваете строковые типы.Найдите их и исправьте и посмотрите, поможет ли это.
Кроме того, если у вас есть какие-либо единицы импорта для внешних библиотек, и они используют API, которые принимают строковый (или, скорее всего, PChar
) параметр, убедитесь, чтоони конвертируются в PAnsiChar
.Delphi уже позаботилась об этом для Windows API, используемого в windows.pas
, но если у вас есть что-то свое, вам нужно позаботиться об этом самостоятельно.