一般」カテゴリーアーカイブ

Windows Updateの問題に対する対応について(追加情報2026年4月15日)

crtdll.dll が _fmode_dll などのエントリが削除され、Free Pascalコンパイラに同梱されている古い32bitの「gcc.exe」が動作しなくなり、それを呼び出している「windres.exe」も動作しなくなったためにリソース(.rcファイル)のコンパイルができなくなりました。

ところが、本日(2026年4月15日)、Windows Updateで「2026-04 セキュリティ パッチ (KB5083769) (26200.8246)」を適用したところ、「crtdll.dll」がロールバックされて元に戻りました。非互換の問題が大きくて戻すことになったのでしょうか?

OK:Windowsバージョン:25H2 ビルド:26200.8039 – 「crtdll.dll」(サイズ:149,019)
NG:Windowsバージョン:25H2 ビルド:26200.8117 – 「crtdll.dll」(サイズ: 60,928)
OK:Windowsバージョン:25H2 ビルド:26200.8246 – 「crtdll.dll」(サイズ:149,019) <= 今回、元に戻った。

これにより、Free Pascal同梱の古い「gcc.exe」が再び動作するようになりました。
fpc コンパイラに「TDM-GCC」の「windres.exe」を呼び出すパラメータを付けたコマンドスクリプト[コマンドスクリプト(その2)]はそのまま継続使用可能です。
今回「crtdll.dll」が戻されましたが、今後再び同様なことが起きる可能性も否定できないので注意してください。

Lazarus 4.6 がリリースされました。

2026年2月25日 Lazarus 4.6 がリリースされました。バグフィックスリリースです。

同梱されているFree Pascalは 3.2.2 です。

Pascal 日和 ホームページ のLazarus関連の手順(Winodws)は Lazarus 4.x に対応しています。

Windows Updateの問題に対する対応について(2026年4月)

Object Pascal 備忘録」でWindowsリソースを使用する例を作成しましたが、Windows Update [2026-03 パッチ (KB5086672) (26200.8117)] ,を適用したところコンパイルがエラーになりました。エラーになったのはObject Pascalソース中に {$R VerInfo.rc} などリソーススクリプトを使用したもで、リソースのコンパイルがエラーとなりました。
Pascal 日和 ホームページ」で対応を作成しましたので報告します。

【問題】
Windows Updateで 「crtdll.dll」(C Runtime Library)の内容が変更され「_fmode_dll」エントリなどが廃止されました。これにより古い「gcc.exe」などが例外が発生し実行できなくなり、「gcc.exe」を呼び出す「windres.exe」も実行できなくなりました。これはバグではなくそういう方針のようです。
Free Pascal 3.2.2に同梱の「gcc.exe」は古いのでこの問題に該当します。そのため、fpc コンパイラでリソーススクリプト(*.rc)のコンパイルができなくなりました。
私が確認したところ、Windows Update「2026-03 パッチ (KB5086672) (26200.8117)」適用から動作しなくなりました。
OK:Windowsバージョン:25H2 ビルド:26200.8039 – 「crtdll.dll」(サイズ:149,019)
NG:Windowsバージョン:25H2 ビルド:26200.8117 – 「crtdll.dll」(サイズ:: 60,928)

【対応】
「TDM-GCC」では、新しい「gcc.exe」が採用されているため「crtdll.dll」に依存せず Windows Update 適用後も「gcc.exe」が動作します。「windres.exe」も動作します。
そのため、 fpc コンパイラに「TDM-GCC」の「windres.exe」を呼び出すパラメータを付けたコマンドスクリプト[コマンドスクリプト(その2)]を作成しました。
{$Rxxx.rc} を設定しているプログラムのコンパイルは[コマンドスクリプト(その2)]を使用してください。リソーススクリプトがなくても使用できます。
事前に「TDM-GCC インストール」を実行してください。この手順でインストールされた環境を前提としています。

ダウンロードも追加しました。「Free Pascal関連ダウンロード」の[Free Pascal用のコマンドスクリプト(その2)]です。

※ 「crtdll.dll」はWindows 11 64bit版の場合「C:\Windows\SysWOW64\crtdll.dll」にあります。32bit DLLです。

「超力招来の備忘録」の投稿を移設しました(その2)

はてなブログで自分が用意したSyntax Highlighterが動作しなくなったため、
「超力招来の備忘録」の投稿を「Pascal 日和 ホームページ」へ移設しました。

今回は以下の1件。

Free Pascal(Object Pascal) : プログラムにバージョン情報を設定する – 超力招来の備忘録
⇒ Pascal 日和 ホームページ – バージョン情報を設定する

Lazarus 4.4 がリリースされました。

2025年11月10日 Lazarus 4.4 がリリースされました。バグフィックスリリースです。

Lazarus Homepage

Lazarus Bugfix Release 4.4

同梱されているFree Pascalは 3.2.2 です。

Pascal 日和 ホームページ のLazarus関連の手順(Winodws)は Lazarus 4.x に対応しています。

Pascal 日和 ホームページ – Lazarus インストール

Pascal 日和 ホームページ – Lazarus 設定

Pascal 日和 ホームページ – Lazarus パッケージインストール1

Pascal 日和 ホームページ – Lazarus パッケージインストール2