-
ビルド
【MFC】mfc140.dll / mfc120.dll が見つからない:DLL名から再配布パッケージを特定する手順
VS2026でビルドしたアプリを別のPCで起動すると、DLL が見つからないというエラーが出ることがあります。 mfc140u.dll が見つからないため、コードの実行を続行できません。 プログラムを再インストールすると、この問題が解決する場合があります。 これは... -
メッセージ
【MFC】PostMessage vs SendMessage の決定的違い
ワーカースレッドから SendMessage で UI を更新したら、アプリがそのまま固まってしまった、という相談は珍しくありません。 この記事では、PostMessage と SendMessage の違いを、同期/非同期・戻り値・別スレッド呼び出し時のデッドロック発生条件の観... -
デバッグ
【MFC】Memory Leak Detection: _CrtSetDbgFlag でリークを自動報告させる
new で確保したメモリを delete で解放し忘れると、長時間実行時のメモリ増加や不安定化につながります。 この記事では、Cランタイム(CRT)のデバッグ機能を使って、終了時に解放漏れを報告させ、ログから確保箇所を確認する手順をまとめます。 _CrtSetDb... -
デバッグ
【MFC】Watch Window (ウォッチウィンドウ) のフォーマット指定子
ウォッチウィンドウでは、停止中の変数や式をその場で確認できます。 この記事では、フォーマット指定子を使ってエラーコード、配列、文字列バッファを見やすく表示する方法を記載します。 ウォッチウィンドウの基本と開き方 一応のおさらいです。デバッグ... -
デバッグ
【MFC】Call Stack (呼び出し履歴) の歩き方
クラッシュで停止したとき、黄色い矢印の行だけを見ても原因に届かないことがあります。 この記事では、Call Stack を使って呼び出し元へ遡り、不正な値が入った場所を確認する手順をまとめます。 Call Stack (呼び出し履歴) の役割 プログラムが関数を呼... -
デバッグ
【MFC】Data Breakpoint (データブレークポイント): 変数が書き換わった瞬間に止める
変数の値がどこで書き換わったのか分からないケースでは、通常のブレークポイントだけでは原因に届かないことがあります。 この記事では、Visual Studio の データブレークポイント(Data Breakpoint) を使って、特定の変数への書き込みで停止し、呼び出... -
ビルド
LNK1169 / LNK2005 : operator new 重複定義とライブラリ競合の直し方
古いMFCプロジェクト(VS2010やVS2013時代でスタティックMFCリンクを使っていたもの)をVS2026で開いたとき、operator new の重複を示す LNK2005 が大量に出るケースがあります。この記事では、原因となるリンク順序の問題を修正する手順をまとめています... -
デバッグ
【MFC】ASSERT(条件) でバグを早期発見する
ASSERT で止まった場所は、前提が崩れた場所です。ここで止まるなら、その少し前から値か状態がおかしくなっています。 この記事では、Debug Assertion Failed! ダイアログの見方と、Releaseで消える性質を前提に ASSERT をどう置くかを整理します。 最初... -
ビルド
【MFC】Releaseビルドだけ落ちる: 最適化と未初期化変数の確認手順
Debugビルドでは再現しないのに、Releaseビルドだけでクラッシュする場合は、設定より先にコード側を疑います。 この記事では、未初期化変数と最適化で表面化する問題を分けて、どこから確認すればいいかを整理します。 最初に切り分けるポイント 最適化を... -
ビルド
【MFC】警告 C4996 ‘strcpy’ エラーの解決策: This function or variable may be unsafe の付き合い方
古いC/C++コードを Visual Studio でビルドすると、strcpy や sprintf などに対して C4996 が出ることがあります。/WX(警告をエラーとして扱う)を有効にしているプロジェクトでは、スクリーンショットのように Error List 上でそのまま「エラー」として...