Michael Charles Aubrey

https://MichaelCharl.es/Aubrey

最新のWindows環境(Windows 11を含む)でのDelphi 2007における「SetThreadContext failed」アサーション失敗の修正方法

最新のWindows環境(Windows 11を含む)でのDelphi 2007における「SetThreadContext failed」アサーション失敗の修正方法

Michael Charles Aubrey // Thu Apr 13 2023

このエラーの情報は、Stack Overflow などのフォーラムにすでにいくらでもあります。ただ、そのほとんどはもっと古い Windows を前提に書かれたものです。内容自体は今でも通用しますが、記事があまりに古いので、書かれている方法を試す気になれない人もいると思います。私もそうでした。この記事を書いたのは、2020 年代にレガシーな Delphi アプリケーションの保守をしている人に向けて、「この修正は Windows 11 でも効きます」と書き残しておきたかったからです。

最新の Windows で Delphi 2007 を使っていると、VCL Forms アプリケーションを閉じるときにこのエラーが出ることがあります。..\win32src\thread32.cpp の 412 行目の「SetThreadContext failed」というアサーション失敗です。

..in32srchread32.cppの412行目で「"(!"SetThreadContext failed")"」というアサーション失敗。実行を続行しますか?

幸い、これは簡単に直ります。原因は、Delphi 2007 に同梱されている bordbk105N.dll が古いことです。このファイルを最新バージョンに置き換えれば済みます。

手順は次のとおりです。

  1. まず、Embarcadero のウェブサイトから最新バージョンの bordbk105N.dll をダウンロードします:https://cc.embarcadero.com/item/27521 このファイルは当初 Windows 7 向けの修正として公開されましたが、Windows 11 でも問題なく動作します。

  2. Delphi 2007 のインストールフォルダを見つけます。デフォルトのインストール先は通常 C:\Program Files (x86)\CodeGear\RAD Studio\5.0 です。

  3. そのフォルダの中にある bin フォルダに移動します。

  4. 既存の bordbk105N.dll ファイルを見つけ、バックアップコピーを作成します(例:bordbk105N.dll.bak)。あとで元に戻したくなったときに困るので、この手順は省かないでください。

  5. 既存の bordbk105N.dll ファイルを、先ほどダウンロードした最新バージョンのファイルで置き換えます。

  6. Delphi 2007 の IDE を再起動し、VCL Forms アプリケーションを再度実行してみてください。

これで終わりです。VCL Forms アプリケーションを閉じても、「SetThreadContext failed」のアサーション失敗はもう出ないはずです。

この記事は元々 dev.to に掲載されています。

Michael Charles Aubrey

Developer at Maki
Based in Akita, Japan

Connect

© 2026 Michael Charles Aubrey. All rights reserved.

Born in Florida 🏝️ • Lives in Akita 👹