-
デバッグ
【MFC】Releaseビルドのデバッグ完全ガイド:OutputDebugString・DebugView・PDB設定の実践手順
Release ビルドでだけ再現するバグは、Debug 構成に戻しても原因に近づけません。ログを仕込もうにも TRACE は Release では消え、デバッガをアタッチしてもウォッチの値が最適化で見えないことがあります。 この記事では、Release ビルドのまま原因を追う... -
ビルド
【MFC】mfc140.dll / mfc120.dll が見つからない:DLL名から正しい再配布パッケージを特定する手順
「mfc140.dll が見つからないため、コードの実行を続行できません」——VS2026でビルドしたアプリを別のPCで起動すると、このエラーが出ることがあります。 mfc140u.dll が見つからないため、コードの実行を続行できません。 プログラムを再インストールする... -
デバッグ
【MFC】GetLastError() は失敗直後に読む:別APIでエラーコードが変わる理由
Win32 API の呼び出しが失敗したとき、GetLastError() でエラーコードを取得するのは基本です。しかし、失敗直後に読まないと、別の API が設定したエラーコードを読んでしまうことがあります。この記事では、GetLastError() をいつ読むべきかと、別 API ... -
例外処理
【MFC】CException::Delete: なぜ Delete() 呼び出しが必須か
MFC の例外処理で CException* を受け取ったとき、Delete() を呼ぶ場面と呼んではいけない場面があります。 この記事では、C++ の catch で捕捉した場合は Delete() が必要、MFC の CATCH マクロで捕捉した場合は自動削除される、という違いを整理します。... -
例外処理
【MFC】try-catch (C++) vs CATCH (MFCマクロ) の違い
古い MFC プロジェクトを引き継ぐと、例外処理に TRY / CATCH / END_CATCH という MFC 独自マクロが使われていることがあります。この記事では、C++ 標準の try-catch と MFC マクロの違いを、構文、CException の寿命管理、移行判断の観点で整理します。 ... -
例外処理
【MFC】AfxThrowMemoryException: メモリ確保失敗を MFC 例外に統一する
メモリ確保に失敗したとき、戻り値だけでエラーを返すと、呼び出し元がチェックを忘れて後続処理でクラッシュすることがあります。MFC では AfxThrowMemoryException() を使うことで、CMemoryException として上位層へ伝え、メモリ不足の処理を1か所に集約... -
近代化
【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!」というダイアログが表示されて、何をどう読めばいいか分からず閉じてしまった、という経験は珍しくありません。 この記事では、このダイアログに表示される情報の読み方と、ソースコード上の原因箇...