Windows 95 Beta と DDD と電窓の記録
Windows 95 Beta, DDD, 電窓といった古いメディアの写真を記録のためアップロードしておきます。(低レイヤーの話ではありません。) Windows 95 Beta の CD 「Windows 95 Beta 1 release Japanese Retail Kit November 1994」と書かれた Windows 95 日本語版ベータ 1 の CD です。どこで入手したかは記憶にありません。マイクロソフト主催のイベントだったかもしれません。 DDD のフロッピーディスク […]
Windows アプリのユーザーインターフェイスの劣化が激しい件
最近のマイクロソフト製 Windows アプリケーションの UI は、基本的なところで統一感がなさすぎます。どうしてこうなっちゃたんでしょうか。(低レイヤーの話ではありません。) 動作確認環境 Windows 11 Home 22H2(ビルド 22621.1413) アクティブウィンドウがわからない 以下は、「Excel」「エクスプローラー」「メモ帳」を並べた画面です。左側の「Excel」がアクティブな状態です。 真ん中の「エクスプローラー」をクリックしてアクティブにしても、「エクスプローラー」 […]
C# で大きいサイズのチェックボックスを作る
C# でチェック欄の見た目を大きくしたチェックボックスを作ります。色も付けます。低レイヤーの話ではありませんが、あまり知られていないようなので書き留めておきます。 動作確認環境 Windows 11 Home 22H2 Visual Studio Community 2022 .NET Framework 4.7.2 (WinForms) 今回作るチェックボックス 一般的なチェックボックスは以下のようなものですが、 今回作るチェックボックスはこれです。 大きくて目立つ、タッチパネルでも押しやすい […]
WinDbg: ダンプファイルから基本的な情報を抜き出す一連のコマンド
Windows のダンプファイルから基本的な情報、たとえば「コンピューター名」「ユーザー名」「OS のバージョン」「PC起動日時」「モジュールの一覧」を抜き出す方法について書き留めておきます。本格的な故障解析に入る前に把握しておきたい情報になります。扱うのはカーネルダンプではなくユーザーダンプです。 動作確認環境 Windows 11 Home 22H2 WinDbg 10.0 dumpchk 10.0 ダンプファイルの準備 まずはテスト用のダンプファイルを取得します。メモ帳を起動し、タスクマネ […]
Windows 1.0 日本語版 パッケージの写真 (NEC PC-9800シリーズ)
Windows 1.0 日本語版のパッケージ(箱)や中身の写真がインターネット上にほとんど見当たらないので載せておきます。 パッケージ Windows 1.0 のパッケージの写真です。NEC の PC-9801 用に売り出されたものです。 パッケージの裏です。NEC のロゴの上に「たしかな技術で世界をむすぶ」というキャッチコピーがあります。 ディスク フロッピーディスクの入っているプラスチックのケースです。 ケースを開けると 3.5 インチフロッピーディスクが 4 枚入っています。ラベルにはそれ […]
WinDbg のカーネルデバッグで使える USB 3.0 ケーブルを秋葉原で買った部品で作る
WinDbg のカーネルデバッグで使える USB 3.0 ケーブルを買おうと思ったのですが高すぎたので自作した話です。2 台の PC を直接接続する、両端が USB Type-A オス端子のデバッグ用クロスケーブルです。 Web でデバッグケーブルを探したものの 最初に Web で USB 3.0 デバッグケーブルを探したのですが、ニーズが少ないのか、日本のサイトでは売っていないようでした。 仕方がないので、米国 DataPro 社のサイト [1] からの購入を試みます。 「3ft $14.95 […]
Visual C++ での同一ソース同一バイナリの実現方法を探る
Visual C++ で C/C++ のプログラムをコンパイル(ビルド)すると、ビルドのたびに微妙に異なるバイナリが生成されてしまいます。そのため、バイナリからソースを特定するのが面倒です。この問題を回避する方法を探ります。 動作確認環境 Windows 11 Home 21H2 Visual Studio Community 2019 課題 1. ビルド日時が埋め込まれる Visual C++ はバイナリにビルド日時を埋め込みます。次のプログラムで確認してみましょう。 ビルドします。 生成され […]
DLL_PROCESS_ATTACH やコンストラクタの実行タイミングを調査する
次の処理の実行タイミングを調査します。 EXE のロード DLL のロード DLL_PROCESS_ATTACH DLL_PROCESS_DETACH グローバル変数のコンストラクタ グローバル変数のデストラクタ メインルーチン mainCRTStartup _DllMainCRTStartup 動作確認環境 Windows 11 Home 21H2 Visual Studio Community 2019 結論 結論から書きます。 下図の青丸が起動時の処理順になります。 下図の赤丸が終了時の処 […]
api-ms-win-crt-runtime-l1-1-0.dll といった長い名前の DLL の実体は何か
「api-ms-win-crt-runtime-l1-1-0.dll」だとか「api-ms-win-crt-stdio-l1-1-0.dll」だとか、やたら長い名前の DLL が実行可能ファイルにリンクされていることがありますが、これは何なのでしょうか。 動作確認環境 Windows 11 Home 21H2 Visual Studio Community 2019 やたら長い名前の DLL メモ帳がリンクしている DLL を見てみます。 「api-ms-」から始まる長い名前の DLL がたくさ […]
Windows システムファイルのビルド日時が表示されない謎を探る
EXE ファイルや DLL ファイルにはビルド日時が埋め込まれており、dumpbin コマンドで表示できます。しかし、Windows のシステムファイルの多くは、ビルド日時が表示されません。OS のファイルなので特別扱いされているのでしょうか。調査します。 動作確認環境 Windows 11 Home 21H2 Visual Studio Community 2019 WORD のビルド日時を確認する 実行可能ファイル(ここでは EXE, DLL, SYS などを含む)のビルド日時は、Visua […]