среда, 21 декабря 2011 г.

Delphi: ошибка «SetThreadContext failed»

Несколько месяцев назад я поставил себе Win7 x64 и дэлфу, на которой пока что предпочитаю трудиться - Delphi 2007. Всё, вроде, было хорошо, но потом столкнулся с весьма неприятной ошибкой...

Если запустить приложение из под IDE(нажатием F9), то при его выполнении всё вроде бы нормально, но при его закрытии выскакивает ошибка "Assertion failure (SetThreadContext failed) ...и ещё чутка ругани..." да ещё и несколько раз подряд. Нужно судорожно жать "Ok" и надеяться что IDE не надумает захлопнуться)

После изучения данной темы понял следующие вещи:
  • Оказывается эта проблема касается ещё и 2009-й Дэлфы
  • И проявляется эта ошибка именно только под Win7 x64
  • А в официальных патчах этого не исправлено и видимо исправлять уже никто не собирается)
И поэтому пришлось поискать неофициальное решение.

И нашёл от такую добротную статейку в блоге некого Олафа, где он пишет на эту тему,
а так же в этой же статье чуть ниже указана ссылка на автопатч,
который я и поставил себе благополучно)

2 комментария:

  1. Если юзаешь Д2007, то я тебе ОЧЕНЬ рекомендую перейти на DelphiХЕ. Ни в чем не потеряешь (ну разве что ЕХЕ в размере будет больше), только приобретешь: CodeSite, Unicode (c этой штукой надо будет помучаться, если будешь переносить большие проекты на ХЕ), CodeInsight (очень удобная вешь как и CodeSite).

    З.Ы. я не пожалел нисколько после преехода с Д2007
    З.З.Ы. взять мона на рутрекере
    З.З.З.Ы. так же пробовал и ХЕ2, тож нормальная ИДЕ.

    ...удачи

    ОтветитьУдалить
  2. LOLO, спасибо за советы,
    я и сам знаю преимущества XE, она у меня тоже имеется, так же как и 7-я с 2007-й.
    Я имел ввиду, что 2007-й я пользуюсь несравненно чаще, чем остальными.
    А причина в том, что надо поддерживать некоторые проекты со специфичскими строковыми операциями без юникода,
    а не от просто так)

    ОтветитьУдалить