-
近代化
【MFC】ダークモード対応: 課題と実装アプローチ
Windows 10 以降でダークモードが標準機能となり、ユーザーからの対応要望が増えています。しかし MFC にはダークモードを直接サポートする API がなく、実装には工夫が必要です。この記事では、MFC アプリへのダークモード対応の課題と実装方法を解説しま... -
近代化
【MFC】UAC対応: 管理者権限とファイルアクセスの注意点
Windows Vista 以降の UAC(ユーザーアカウント制御)により、Program Files フォルダへの書き込みが制限されるようになりました。古い MFC アプリケーションでは、設定ファイルやログを EXE と同じフォルダに書いていたために動作しなくなるケースがあり... -
近代化
【MFC】WebView2: Edge (Chromium) をアプリに埋め込む
レガシーな MFC アプリの中に、CHtmlView を使った画面が残っていることがあります。以前は社内のヘルプ画面や簡単な HTML 表示で使われていましたが、最近のログイン画面や JavaScript を使ったページでは正しく動かないことがあります。この記事では、MF... -
デバッグ
【MFC】Debug Assertion Failed! の正しい読み方
Debug ビルドで実行中に突然「Debug Assertion Failed!」というダイアログが表示されて、何をどう読めばいいか分からず閉じてしまった、という経験は珍しくありません。 この記事では、このダイアログに表示される情報の読み方と、ソースコード上の原因箇... -
デバッグ
【MFC】IsBadReadPtr / IsBadWritePtr は使うな
レガシーな MFC コードの中に IsBadReadPtr や IsBadWritePtr を使ったポインタチェックが残っていることがあります。一見安全そうに見えますが、Microsoft はこれらの関数を使わないことを推奨しています。この記事では、なぜ使ってはいけないのかと、代... -
メモリ
【MFC】CString のメモリ管理: GetBuffer / ReleaseBuffer の作法
Win32 API に LPTSTR(書き込み可能な文字列ポインタ)を渡す場面で、CString の内部バッファをそのまま使いたくなることがあります。この記事では、GetBuffer / ReleaseBuffer の正しい使い方と、やってはいけないパターンを解説します。 なぜ GetBuffer ... -
デバッグ
【MFC】Run-Time Check Failure #2 – Stack around the variable was corrupted
Debug ビルドで実行したら突然「Run-Time Check Failure #2 - Stack around the variable '...' was corrupted」というダイアログが出て止まった、という状況は珍しくありません。この記事では、このエラーが何を検知しているのかと、原因の特定から修正ま... -
デバッグ
【MFC】UpdateData(TRUE/FALSE) の仕組み
MFC ダイアログで UpdateData を書く順番を間違えて、入力値がメンバ変数に入っていない、あるいは画面が上書きされてしまう、という事故は珍しくありません。 この記事では、UpdateData(TRUE) と UpdateData(FALSE) の役割を、DDX の裏側・自動呼び出しの... -
ビルド
【MFC】mfc140.dll / mfc120.dll が見つからない:DLL名から再配布パッケージを特定する手順
VS2026でビルドしたアプリを別のPCで起動すると、DLL が見つからないというエラーが出ることがあります。 mfc140u.dll が見つからないため、コードの実行を続行できません。 プログラムを再インストールすると、この問題が解決する場合があります。 これは... -
ビルド
【MFC】0xc000007b エラーの直し方:32bit/64bit DLL混在で起動しない原因と修正手順
x64 でビルドしたアプリを実行したとき、0xc000007b(0xc00007b と表記されることもあります)で起動できないことがあります。 アプリケーションを正しく起動できませんでした (0xc000007b)。 [OK] をクリックしてアプリケーションを閉じてください。 ...